获得错误:“viewState MAC验证失败。”

时间:2013-02-05 16:34:41

标签: c#

我收到错误: “视图状态MAC验证失败。如果此应用程序由Web场或群集托管,请确保<machineKey>配置指定相同的validationKey和验证算法。无法在群集中使用AutoGenerate。”

如果我不通过Load Balancer,我不会使用此错误。如果我通过Load Balancer,我会在50%的时间内收到此错误。 Load Balancer具有粘性会话。

我的配置文件是这样的:     的validationKey = '2EEA416CEFC6D6BE856ED57B97FB9CA7DFACE17C073125949A1D682C80A44BB2AD887DDDC13DBFB0954F1000FEE5757E99693F222F8E28CAA2E6DAB8C4F99E0C'     decryptionKey = '877478B2F33A74226ABEF55FDCC1A76E43F1BBEA6241A592'     validation ='SHA1'/&gt;

<pages enableViewStateMac="false">

所以,我已经有了enableViewStateMac =“false”。如何使零星错误消失?

1 个答案:

答案 0 :(得分:0)

您需要受负载均衡器影响的所有服务器使用相同的机器密钥,这样当视图状态生成到服务器1并发布到服务器2时,服务器2可以对视图状态进行身份验证,因为服务器1和服务器2都使用同样的关键。

更多信息:http://technet.microsoft.com/en-us/library/cc731979%28v=ws.10%29.aspx

编辑:

此外,如果您正在使用某些CSRF保护,则必须确保有一种方法可以在服务器之间保留该信息。 (某些CSRF保护方案指定了一个视图状态密钥)。