大量用GET方式往一个页面传值导致各种莫名其妙的异常,求大神帮忙

哈利路亚2 2018-08-09 10:22:12
客户端 通过get方式 大量往一个指定的网址页面传值 页面接收到传值之后对数据库做操作 但是在测试一段时间发现 有很多莫名其妙的异常出现 比如: 未将对象引用设置到对象的实例 等 大量的往一个页面传值 会出现错误吗
...全文
182 17 打赏 收藏 转发到动态 举报
写回复
用AI写文章
17 条回复
切换为时间正序
请发表友善的回复…
发表回复
哈利路亚2 2018-08-09
  • 打赏
  • 举报
回复
引用 3 楼 From_TaiWan 的回复:
好久没来了

大量,到底有多大?
有种可能是超过最大请求量,请检查配置文件的<SYSTEM.WEB>节,<HTTP runtime>子节下,有个最大请求限制,默认是4Mb,可以配置大些
另外,最好用post方式提交


配置<HTTP runtime>下的什么属性?
哈利路亚2 2018-08-09
  • 打赏
  • 举报
回复
引用 3 楼 From_TaiWan 的回复:
好久没来了

大量,到底有多大?
有种可能是超过最大请求量,请检查配置文件的<SYSTEM.WEB>节,<HTTP runtime>子节下,有个最大请求限制,默认是4Mb,可以配置大些
另外,最好用post方式提交

目前有800个客户端 每20秒到60秒都会往服务器传一次值
哈利路亚2 2018-08-09
  • 打赏
  • 举报
回复
我本地测试 没有异常 但是 用户一多了就有问题
秋的红果实 2018-08-09
  • 打赏
  • 举报
回复
好久没来了

大量,到底有多大?
有种可能是超过最大请求量,请检查配置文件的<SYSTEM.WEB>节,<HTTP runtime>子节下,有个最大请求限制,默认是4Mb,可以配置大些
另外,最好用post方式提交
IEEE_China 2018-08-09
  • 打赏
  • 举报
回复
出现异常,就把出错的值,处理过程 记录下来,找找是什么问题引起的异常
闭包客 2018-08-09
  • 打赏
  • 举报
回复
只能说所有事物都有极限吧。
哈利路亚2 2018-08-09
  • 打赏
  • 举报
回复
解决了已经 加上 cmd.Parameters.Clear(); 就行了
哈利路亚2 2018-08-09
  • 打赏
  • 举报
回复
有没有人啊?
  • 打赏
  • 举报
回复
高频插入导致的数据库拥堵,建议从如何规划数据库连接做起,到任务入队列队列执行结束。
哈利路亚2 2018-08-09
  • 打赏
  • 举报
回复
还会出现这个异常
变量名 '@con' 已声明。变量名在查询批次或存储过程内部必须唯一。 在 System.Data.SqlClient.SqlConnection.OnError(SqlException exception, Boolean breakConnection, Action`1 wrapCloseInAction) 在 System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject stateObj, Boolean callerHasConnectionLock, Boolean asyncClose) 在 System.Data.SqlClient.TdsParser.TryRun(RunBehavior runBehavior, SqlCommand cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj, Boolean& dataReady) 在 System.Data.SqlClient.SqlDataReader.TryConsumeMetaData() 在 System.Data.SqlClient.SqlDataReader.get_MetaData() 在 System.Data.SqlClient.SqlCommand.FinishExecuteReader(SqlDataReader ds, RunBehavior runBehavior, String resetOptionsString) 在 System.Data.SqlClient.SqlCommand.RunExecuteReaderTds(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, Boolean async, Int32 timeout, Task& task, Boolean asyncWrite, SqlDataReader ds, Boolean describeParameterEncryptionRequest) 在 System.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, String method, TaskCompletionSource`1 completion, Int32 timeout, Task& task, Boolean asyncWrite) 在 System.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, String method) 在 System.Data.SqlClient.SqlCommand.ExecuteScalar() 在 NBear.Data.Database.DoExecuteScalar(DbCommand command) 在 NBear.Data.Database.ExecuteScalar(DbCommand command) 在 NBear.Data.SimpleDbHelper.Insert(Database db, String table, String[] columns, DbType[] types, Object[] values, DbTransaction tran, String autoColumn, String additionalInsert) 在 NBear.Data.Gateway.Insert[IEntityType](IEntityType obj, DbTransaction tran, String[] exceptColumns) 在 NBear.Data.Gateway.Insert[IEntityType](IEntityType obj, String[] exceptColumns) 在 DAL.Common.Insert[T](T entity) 位置 D:\盒子APP\DAL\DAL\Common.cs:行号 125 在 wap_hzjieshou.Page_Load(Object sender, EventArgs e) 位置 c:\www\hzjieshou.aspx.cs:行号 627 在 System.Web.UI.Control.OnLoad(EventArgs e) 在 System.Web.UI.Control.LoadRecursive() 在 System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint)
哈利路亚2 2018-08-09
  • 打赏
  • 举报
回复
get传值字符串没有多长 不是指的长度 而是 一定时间内有数量很多的客户端 同时用get 的方式往一个页面发送数据 那个页面就是负责接收数据 录入数据库 本地测试根本测不出来 代码都是能正常走 下面是服务器的日志文件 和出现异常的地方代码
未将对象引用设置到对象的实例。 在 NBear.Data.SqlServer.SqlStatementFactory.CreateInsertStatement(String tableName, String additionalInsert, String[] includeColumns) 在 NBear.Data.SimpleDbHelper.Insert(Database db, String table, String[] columns, DbType[] types, Object[] values, DbTransaction tran, String autoColumn, String additionalInsert) 在 NBear.Data.Gateway.Insert[IEntityType](IEntityType obj, DbTransaction tran, String[] exceptColumns) 在 NBear.Data.Gateway.Insert[IEntityType](IEntityType obj, String[] exceptColumns) 在 DAL.Common.Insert[T](T entity) 位置 D:\盒子APP\DAL\DAL\Common.cs:行号 125 在 wap_hzjieshou.Page_Load(Object sender, EventArgs e) 位置 c:\www\hzjieshou.aspx.cs:行号 122 在 System.Web.UI.Control.OnLoad(EventArgs e)


122行就是往数据库添加的时候报错
接收到的这些字段都过滤了 没有空 没有乱码 没有超长度

    int hhzz = mo.id;
int zztt = int.Parse(zhuangtai);
Entity.xinxi Models2 = NBear.Common.EntityFactory<Entity.xinxi>.CreateObject();
Models2.hzid = hhzz;
Models2.ntime = DateTime.Now;
Models2.iss = zztt;
Models2.shi = shidu;
Models2.wen = wendu;
DAL.Common.Insert<Entity.xinxi>(Models2);
xuzuning 2018-08-09
  • 打赏
  • 举报
回复
IE对URL长度的限制是2083字节(2K+35)。虽然其他浏览器理论上没有长度限制
但短板总是制约着容量

大量究竟大到什么成度呢?
  • 打赏
  • 举报
回复
引用 楼主 u013321625 的回复:
但是在测试一段时间发现 有很多莫名其妙的异常出现 比如: 未将对象引用设置到对象的实例 等


除了这样一行标题党式的描述之外,半点也看不到你中断调试信息,或者日志信息。

连具体是哪一行代码抛出异常、当时的环境变量和每一层堆栈入口变量调试、连代码的行号都不知道的,这怎么搞开发啊?
  • 打赏
  • 举报
回复
出 bug 总是有其具体的位置,总是知道是那一行代码出错,然后调试.......但是前提是测试、重现 bug。

看起来,你没有测试,也不在开发环境重现问题。
  • 打赏
  • 举报
回复
了解下压测
服务器承载量有限,代码承载量也有限
  • 打赏
  • 举报
回复
你发布前的测试是怎么做的?
  • 打赏
  • 举报
回复
引用 楼主 u013321625 的回复:
客户端 通过get方式 大量往一个指定的网址页面传值 页面接收到传值之后对数据库做操作 但是在测试一段时间发现 有很多莫名其妙的异常出现 比如: 未将对象引用设置到对象的实例 等 大量的往一个页面传值 会出现错误吗


什么代码都会出错误。更何况是”往一个页面传值“。

110,539

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧