Asp.Net Viewstate超出最大请求长度

问题描述 投票:0回答:2

我陷入了一个问题,该问题导致我的WebApplication定期崩溃。客户端(浏览器)向服务器发出一些(超过1个)请求后获得HTTP状态代码500。我打开IIS失败请求跟踪,发现该请求超出了最大请求限制:

Maximum request length exceeded

我查看了隐藏的__VIEWSTATE字段,发现它包含一些我期望的信息以及一个带有49,500个字符的神秘的(可能是base64编码的)序列化对象。我不知道为什么这么大,并在后面的代码中检查了我的Session和ViewState对象。但是没有什么可疑的。

由于我正在显示2个ASP.NET图表和一个大数据表(5k行和aprox 20列,因此我进入了Web.Config文件并将请求限制增加到]]

</system.web>
  <httpRuntime maxRequestLength="4194304"/>    
</system.web>

有点成功,这意味着服务器在再次请求之前幸存了下来,然后以OutOfMemoryException崩溃,声称没有更多的可用内存。

到目前为止,我很确定存储了一些(并且我指的是吨)不需要的,不必要的,最有可能未使用的对象。 (描述内存泄漏的好方法;))。

但是在这一点上,我迷路了。在将ViewState序列化并检查其中是否引用了哪些对象之前,有什么办法可以查看?我是否可以清除/删除/刷新ViewState / Session /由谁负责,以使干净的序列化ViewState不超过默认限制?

我陷入了一个问题,该问题导致我的WebApplication定期崩溃。客户端(浏览器)向服务器发出一些(超过1个)请求后获得HTTP状态代码500。我打开了...

c# asp.net iis-7 viewstate
2个回答
0
投票

在服务器端:我们应该编写代码,以便于处理响应时间,我们可以遵循以下操作


0
投票

最后找到原因。显然,an还将其内容存储在ViewState中,这导致PostBack请求变得异常大。 (也有一些遗留代码将数据推送到ViewState中)

© www.soinside.com 2019 - 2024. All rights reserved.