【问题标题】:Getting error: "Validation of viewState MAC failed."出现错误:“viewState MAC 验证失败。”
【发布时间】:2013-02-05 16:34:41
【问题描述】:

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

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

我的配置文件是这样的: 验证密钥='2EEA416CEFC6D6BE856ED57B97FB9CA7DFACE17C073125949A1D682C80A44BB2AD887DDDC13DBFB0954F1000FEE5757E99693F222F8E28CAA2E6DAB8C4F99E0C' 解密密钥='877478B2F33A74226ABEF55FDCC1A76E43F1BBEA6241A592' 验证='SHA1' />

<pages enableViewStateMac="false">

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

【问题讨论】:

    标签: c#


    【解决方案1】:

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

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

    编辑:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-11-27
      • 2010-11-24
      • 1970-01-01
      相关资源
      最近更新 更多