【发布时间】:2010-11-22 08:29:14
【问题描述】:
由于某种原因,我的应用程序的视图状态变得巨大(大约 1400 万个字符)。它增加了大约 1 分钟的加载时间。如果页面最终加载(不经常),每次有人发送表单时服务器都会崩溃,因为“Post size exceeded allowed limits.”
突然出现。我没有添加任何字段,只是在页面上添加了一些 javascript。
人们告诉我检查视图状态分块。 Google 告诉我这样做:
<pages maxPageStateFieldLength="1024">
...所以现在我有 100 个非常大的隐藏字段,而不是一个巨大的隐藏字段。这不是我想要的。
为什么.NET 会做这样的事情?我怎样才能解决这个问题?
【问题讨论】:
-
您可以关闭一些控件的视图状态吗?
-
不看页面很难说,但是尝试使用视图状态解码器来查看视图状态中嵌入的内容。如果您不需要网格/表格的视图状态,您还应该关闭它们,并且除了在 IIS 上打开 gzip 之外,还应该实现压缩的视图状态。
-
控件是输入字段,无法关闭它们的视图状态,即使这样也需要我重新编写大量代码。还有大概10个字段,应该没那么差吧……对吧?
-
@mikael:如何关闭网格/表格的视图状态?我只有输入字段,.net 是否可能决定其他一些字段需要在视图状态中?
-
您在输入上使用视图状态做什么?如果您只需要他们在回发中记住他们的值,那么在没有视图状态的情况下也可以。
标签: .net asp.net viewstate chunking