确定每个控件在ViewState中存储的数据量

时间:2011-10-13 12:56:39

标签: c# asp.net optimization .net-4.0 viewstate

  

可能重复:
  How to decode viewstate

我正在处理一个相当复杂的页面,有很多用户控件,中继器等。

该页面上的ViewState已经膨胀到超过4MB,这导致回发时出现"Maximum Request Length Exceeded"错误。临时修复是增加maxRequestLength中的HttpRuntime属性,但这并不能解决根问题。

是否有人知道我如何检查/查询ViewState以查看哪些控件是最大的违规者?我想要避免的是花费大量时间来优化控件,这样只能节省几美元,而页面上还有其他可能会在ViewState中存储几百KB

谢谢!

1 个答案:

答案 0 :(得分:5)

您可以使用:

  • Fiddler网络调试工具
  • 为特定页面启用跟踪:<%@ Page Language="c#" Trace="true"%>
  • 在web.config中为整个应用程序启用跟踪,这样每个页面底部都会显示很多有用的跟踪信息
<configuration>
  <system.web>
    <trace enabled="true" pageOutput="false" localOnly="false"/>
  </system.web>
</configuration>

有用的跟踪指标(在您的情况下)是:

  • 渲染大小字节
  • ViewState Size bytes
  • ControlState Size bytes