1

我们收到关于著名的“无法加载视图状态”的零星报告。很难追踪,因为我们没有使用任何动态加载的控件。而且是零星的。

“加载视图状态失败。正在加载视图状态的控件树必须与先前请求期间用于保存视图状态的控件树匹配。例如,动态添加控件时,回发期间添加的控件”

这还有什么其他原因?我们没有记录任何应用程序池回收。

4

1 回答 1

0

几种可能:

在页面上,一些控件被添加或删除,因为页面被发送到客户端。

在网络农场上,页面可能由具有不同“机器代码”的不同服务器处理以进行加密。我不记得确切的语法,但你可以设置它,这样它们在 web.config 中都是一样的。

如果页面本身在服务器上被编辑,然后回发“旧版本”,我已经看到了这一点。但似乎你会知道那是否发生了。

并且根据页面“在野外”的时间长短,服务器更新甚至在它被发送和回发之间重新启动可能会改变机器代码。同样,在 web.config 中设置它以防止这种情况。

哦 - 还有一个 - 一些浏览器会截断表单字段,所以如果你有很多视图状态,它可能会在回发时被浏览器截断。那会搞砸的。

于 2011-04-14T17:35:53.607 回答