ASP.NET程序运行和加载大数据量数据时出错,高分求救。

BoxingKing 2008-07-14 11:27:57
我现在有个ASP.NET的程序,在页面输入条件后,进行数据库查询和计算,因数据量较大,这个过程大概需要10-45分钟不等(这是

个大概数值,具体时间不确定,或许更久),计算完成后,将计算结果显示在另外一个页面的DataView控件中,数据量大概有

1000-50000条不等(或许更多),现在的问题是,当计算小的数据量时(计算时间较短,计算的结果数量也比较少)没有一点问

题,但计算量较大时(一般超出30分钟),会报如下错误:
“无法序列化会话状态。在“StateServer”或“SQLServer”模式下,ASP.NET 将序列化会话状态对象,因此不

允许使用无法序列化的对象或 MarshalByRef 对象。如果自定义会话状态存储在“Custom”模式下执行了类似的序列化,则适用

同样的限制。
说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细

信息。

异常详细信息: System.Web.HttpException: 无法序列化会话状态。在“StateServer”或“SQLServer”模式下,ASP.NET 将序

列化会话状态对象,因此不允许使用无法序列化的对象或 MarshalByRef 对象。如果自定义会话状态存储在“Custom”模式

下执行了类似的序列化,则适用同样的限制。”


我使用的是“StateServer”会话模式, IIS服务器,XP SP2操作系统,SQL SERVER2005数据库。
硬件配置为P42.8G 512M内存。

是不是数据量太大引起的,是不是需要做分页?
另外,所在的类前也加了[Serializable]属性,在小数据量下也运行正常,望高手支招。
...全文
206 23 打赏 收藏 转发到动态 举报
写回复
用AI写文章
23 条回复
切换为时间正序
请发表友善的回复…
发表回复
talentxiaoli 2009-08-27
  • 打赏
  • 举报
回复
哈哈。
楼主别灰心
我也在等这个答案
BoxingKing 2008-07-21
  • 打赏
  • 举报
回复
哎,看来找不到答案了,算了结贴了。
不知大家为什么都怀疑算法,不去分析实际的问题,高手都哪里去了?
  • 打赏
  • 举报
回复
看来你的硬件该升级了
BoxingKing 2008-07-20
  • 打赏
  • 举报
回复
顶起,别沉底了。
BoxingKing 2008-07-19
  • 打赏
  • 举报
回复
回楼上,把模式改为inproc状况有所好转,但我不明白的是inproc应该比“StateServer”更容易丢失session,为什么设成inproc后反而会好些。我最初就是就是因为inproc容易丢失其它页面的session才修改为“StateServer”的,哪位大虾给解释一下。
还有,在论坛上也看到许多讨论session丢失的帖子,貌似是个难题,不好解决。sql server 方式是不是相对还写,有谁用过,如何配置?
kyle315 2008-07-18
  • 打赏
  • 举报
回复
把会话模式改为inproc或者sql server 试试。另外,有可能是session丢失引起的。
BoxingKing 2008-07-17
  • 打赏
  • 举报
回复
数据库、包括计算我都已经做了优化,我说的计算并不是简单的从数据库中读取数据,而是中间要做很多复杂的数学运算。我所说得问题并不一定是由数据库操作而引起的,出现这种问题最主要是由于会话状态修改为“StateServer”、且计算时间较长引起的,计算速度现在已经优化到极致了,能缩短的可能性很小。这这种情况下看大家有没有好的方法。
homesos 2008-07-17
  • 打赏
  • 举报
回复
数据分批处理,
数据库优化,关于数据处理,能在数据库中完成的就尽量在数据库中完成。
suyiming 2008-07-17
  • 打赏
  • 举报
回复
我曾经做过一个ip库 2000万的报表 进行一些数据处理 只花了1-3秒 很少超过5秒的
之前我也试过15分钟,后来进行数据字段增减 优化索引 后来处理数据时间小于5秒

处理2000万数据 内存消耗真大 耗内存500m

我只说说我经验 - -!
honkerhero 2008-07-17
  • 打赏
  • 举报
回复
代码质量问题,才5万,怎么可能用这么长时间
yap111 2008-07-17
  • 打赏
  • 举报
回复
怎么会执行这么久啊,怀疑,评估50年后中国国民经济发展态势吗?
BoxingKing 2008-07-17
  • 打赏
  • 举报
回复
顶呀,别沉底了,现在还没有解决呢。
wuyanteng1 2008-07-15
  • 打赏
  • 举报
回复
上网扎扎这个错误
wuyanteng1 2008-07-15
  • 打赏
  • 举报
回复
帮你顶到解决为止
jimmy_jpy 2008-07-15
  • 打赏
  • 举报
回复
关键是数据库能做请不要交给程序来做,建议楼主在sql上面优化下
chinaicm 2008-07-15
  • 打赏
  • 举报
回复
一般这累问题就是采用分页处理,网上有很多分页的存储过程,LZ可以借鉴下.加索引可以增加你的查询速度,很明显的.
s208ping 2008-07-15
  • 打赏
  • 举报
回复
sql语句优化,用索引等等,google
WDFrog 2008-07-15
  • 打赏
  • 举报
回复
StateView 太大了把
用后台程序定时做计算,把计算结果保持到表里,
对表里的记录做分页处理
kyle315 2008-07-15
  • 打赏
  • 举报
回复
说实话,我也想知道。
大正他爹 2008-07-15
  • 打赏
  • 举报
回复
确实太大了,为什么不分批处理呢,
或用软件模式.
加载更多回复(3)

61,819

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

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