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

Jim*_*m B 3 c# asp.net viewstate optimization .net-4.0

可能重复:
如何解码viewstate

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

ViewState该网页上已经膨胀到超过4MB,这是造成一"Maximum Request Length Exceeded"回发错误.临时修复将增加maxRequestLength属性HttpRuntime,但这不是修复根问题.

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

谢谢!

sll*_*sll 5

您可以使用:

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

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

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