在不同服务器上验证viewstate MAC失败

时间:2015-07-02 09:24:31

标签: asp.net iis encryption

我有一个用于ASP.Net WebForms应用程序的2个服务器池,其中1个是2k3,另外1个是2k8 R2。我已将我的应用程序配置为始终加密视图状态,例如

<pages enableViewState="false" validateRequest="true" viewStateEncryptionMode="Always"/>

已在服务器上设置machine.config,使其成为相同的加密/解密算法和密钥。我有一个负载均衡器在整个框中分配流量,当一个服务器的初始请求发回另一个服务器时,我得到以下异常:

System.Web.HttpException:viewstate MAC验证失败。如果此应用程序由Web场或群集托管,请确保&lt; machineKey&gt; configuration指定相同的validationKey和验证算法。 AutoGenerate不能在群集中使用

我已尝试在应用程序级别的web.config中设置machineKey元素,但我遇到了同样的问题。这个错误在任何方面都归结为IIS或O / S差异吗?

2 个答案:

答案 0 :(得分:0)

您可以从developersfusion生成计算机密钥并将其添加到您的web.config。

答案 1 :(得分:0)

我们设法通过将所有未完成的Windows Update修补程序/修补程序应用于2003服务器来解决此问题。这涉及许多.Net 2.0框架更新。