随机无效的Viewstate错误

pro*_*tor 11 c# asp.net webforms .net-4.5

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

我正在使用IIS8,.Net 4.5.

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

在我的web.config中,我有:

<system.web>
<machineKey validationKey='....key here'   decryptionKey='....decrypt key is valid here'   validation='SHA1'/>
    <!--<hostingEnvironment shadowCopyBinAssemblies="false" />-->
    <authentication mode="None" />
    <compilation targetFramework="4.5.1" />
    <httpRuntime targetFramework="4.5.1" />
...
</system.web>
Run Code Online (Sandbox Code Playgroud)

我正在运行虚拟专用服务器,而我还没有找到大于9​​kb的viewstate.

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

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

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

Jos*_*h E 6

调查的几种可能性:

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

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

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

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