0

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

如果我不通过负载均衡器,我不会使用此错误。如果我通过负载均衡器,大约 50% 的时间会出现此错误。负载均衡器具有粘性会话。

My config file is like this: validationKey='2EEA416CEFC6D6BE856ED57B97FB9CA7DFACE17C073125949A1D682C80A44BB2AD887DDDC13DBFB0954F1000FEE5757E99693F222F8E28CAA2E6DAB8C4F99E0C' decryptionKey='877478B2F33A74226ABEF55FDCC1A76E43F1BBEA6241A592' validation='SHA1' />

<pages enableViewStateMac="false">

所以,我已经有了 enableViewStateMac="false"。我怎样才能使零星的错误消失?

4

1 回答 1

0

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

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

编辑:

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

于 2013-02-05T16:38:09.727 回答