随机无效的视图状态错误

我知道关于这个主题有很多问题,我已经全部阅读过了。

我正在使用IIS8,.Net 4.5。

用户随机获得无效的viewstate错误,我无法弄清楚。 一旦发生这种情况,他们可以回到网站的唯一方法是清除浏览器缓存。

在我的web.config中,我有:

  <!---->    ...  

我正在虚拟专用服务器上运行,而我还没有找到大于9​​kb的视图状态。

我的应用程序池设置为每天凌晨3:00重启,每天一次。

我的页面使用更新面板,也许用户点击“返回”? 但我看到它只是访问页面而没有点击回来。

我注意到的一件事是我有3个不同的站点使用相同的应用程序池标识,但应用程序池是分开的。 machine.xml中没有机器密钥,但只在我的web.config中。

调查的几种可能性:

  1. 更新面板正在更改表单字段值(用于计算ViewState的值),然后页面返回到服务器,新值使validation失败。 看这篇文章

  2. 您已启用缓存(执行HTTP标头的跟踪 – 确保您没有打开开发工具),这会导致无效的ViewState生成,而UpdatePanel会将其搞砸。

  3. 你在任何地方使用Server.Execute吗? (见上面链接)

  4. (不太可能)您的“虚拟专用服务器”是否迁移到不同的硬件(可能在您不知情的情况下)?