【发布时间】:2012-07-07 09:08:16
【问题描述】:
我不断收到此视图状态验证错误:
System.Web.HttpException (0x80004005):视图状态 MAC 验证失败。如果此应用程序由 Web Farm 或集群托管,请确保配置指定相同的 validationKey 和验证算法。 AutoGenerate 不能在集群中使用。 ---> System.Web.UI.ViewStateException: 无效的视图状态...
我有 ARR 对站点进行负载平衡,我认为当它将用户从一台服务器切换到另一台服务器时(即使我选择了亲和力)它会抛出这个。但是 - 我配置了机器密钥,并且在场中的两台服务器上配置了相同的加密方法、解密方法、验证密钥和解密密钥。我错过了什么吗?
【问题讨论】:
-
它通过电子邮件向我发送未处理的异常(来自 Global.asax),这就是我收到这些错误的方式。这只是偶尔发生,因为我在负载平衡中设置了关联性,因此用户只是偶尔会被发送到场中的不同服务器。
-
如果您偶尔收到此消息,请再次查看此答案,它可以帮助您找到原因stackoverflow.com/questions/1821243/…
-
我不认为他们在谈论负载平衡环境。此外,我可以通过删除关联 cookie 以登陆不同的服务器然后重新发送回发来一致且可预测地导致异常。所以我知道问题在于验证两台服务器之间的视图状态键。
-
(我的意思是验证viewstate mac(不是key))
标签: asp.net iis-7 viewstate load-balancing