2015-07-02 97 views
0

我有一个ASP.Net WebForms应用程序的2个服务器池,其中1个是2k3和1个新添加的2k8 R2。我已将应用程序配置为始终对视图状态进行加密,例如验证viewstate MAC在不同服务器上失败

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

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

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

我曾尝试在应用程序级别的web.config中设置machineKey元素,但我遇到同样的问题。这种错误以任何方式降低到IIS或O/S差异?

回答

0

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

0

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

+0

您好我已经在machine.config和web.config两个服务器中设置了相同的密钥。有什么方法可以验证IIS 6应用程序正在使用的machineKey吗? – Paddy