C# ASP.NET视图状态错误问题

C# ASP.NET视图状态错误问题,c#,.net,asp.net,C#,.net,Asp.net,我们有一个使用viewstate的asp.net网页。在长时间的操作(需要超过12分钟)期间,会发生与视图状态相关的错误,如下所示 The controls from the page gets vanished. It simply writes on the screens as "input type=”hidden” name= ”_VIEWSTATE” id= ”_VIEWSTATE” value =’/wEPDw…” 如果避免使用viewstate,则可以正常工作。还有一个观

我们有一个使用viewstate的asp.net网页。在长时间的操作(需要超过12分钟)期间,会发生与视图状态相关的错误,如下所示

The controls from the page gets vanished. 
It simply writes on the screens as 
"input type=”hidden” name= ”_VIEWSTATE” id= ”_VIEWSTATE” value =’/wEPDw…” 
如果避免使用viewstate,则可以正常工作。还有一个观察结果是,当我们连接到VPN并将其作为intranet运行时,即使使用viewstate,它也可以正常工作

我读过这样一段话:“即使ViewState不会过期,但如果使用不同的自动生成密钥来解密ViewState,例如在IIS重置、重新部署应用程序或命中web场中的其他服务器后,它可能会变得无效。”

•我们有一个负载平衡器(带有两个web服务器)

•我们没有重新启动IIS

•我们不会在测试期间重新部署应用程序

那么,这一错误的可能原因是什么?如何在不删除viewstate的情况下解决此问题

这可能与什么有关?如何确认是代理问题还是防火墙问题

谢谢

李贺

我们有一个负载平衡器(带有两个web服务器)

因此,请确保在两台web服务器上都指定了相同的值,而不是默认的自动生成值。您还可以在应用程序的web.config中指定此值:

<machineKey 
    validationKey="21F090935F6..."           
    decryptionKey="ABAA84D7EC4..."
    validation="SHA1"
    decryption="AES"
/>

这将确保无论哪个web服务器加密viewstate,另一个服务器都能够对其进行解密。您还可以使用生成机器密钥

我们有一个负载平衡器(带有两个web服务器)

因此,请确保在两台web服务器上都指定了相同的值,而不是默认的自动生成值。您还可以在应用程序的web.config中指定此值:

<machineKey 
    validationKey="21F090935F6..."           
    decryptionKey="ABAA84D7EC4..."
    validation="SHA1"
    decryption="AES"
/>


这将确保无论哪个web服务器加密viewstate,另一个服务器都能够对其进行解密。您还可以使用生成机器密钥。

我将机器密钥放在web.config中,并在两个web服务器中使用相同的web.config。但我也犯了同样的错误。还有,为什么通过VPN连接时不会发生这种情况?我将机器密钥放在web.config中,并在两个web服务器中使用相同的web.config。但我也犯了同样的错误。还有,为什么我通过VPN连接时不会发生这种情况?错误是什么?你说“如下所列”,但那一行只显示了一些很短的viewstart-它没有显示错误?你能在错误页面上执行“查看源代码”吗?还有其他问题吗?我认为错误与viewstate无关。服务器端的逻辑错误,在viewstate中保留了一些数据。尝试分段禁用Viewstate(从整个页面到某些控件)您的两个web服务器是否配置了相同的机器密钥?@Simon:是的,我已将机器密钥放入web.config中,并在两个web服务器中使用了相同的web.config。@斯图尔特:viewsource如下:错误是什么?你说“如下所列”,但那一行只显示了一些很短的viewstart-它没有显示错误?你能在错误页面上执行“查看源代码”吗?还有其他问题吗?我认为错误与viewstate无关。服务器端的逻辑错误,在viewstate中保留了一些数据。尝试分段禁用Viewstate(从整个页面到某些控件)您的两个web服务器是否配置了相同的机器密钥?@Simon:是的,我已将机器密钥放入web.config中,并在两个web服务器中使用了相同的web.config。@斯图尔特:viewsource如下所示: