机器密钥不起作用 - viewstate mac 失败

Posted

技术标签:

【中文标题】机器密钥不起作用 - viewstate mac 失败【英文标题】:machine key not working - viewstate mac failed 【发布时间】:2012-07-07 09:08:16 【问题描述】:

我不断收到此视图状态验证错误:

System.Web.HttpException (0x80004005):视图状态 MAC 验证失败。如果此应用程序由 Web Farm 或集群托管,请确保配置指定相同的 validationKey 和验证算法。 AutoGenerate 不能在集群中使用。 ---> System.Web.UI.ViewStateException: 无效的视图状态...

我有 ARR 对站点进行负载平衡,我认为当它将用户从一台服务器切换到另一台服务器时(即使我选择了亲和力)它会抛出这个。但是 - 我配置了机器密钥,并且在场中的两台服务器上配置了相同的加密方法、解密方法、验证密钥和解密密钥。我错过了什么吗?

【问题讨论】:

它通过电子邮件向我发送未处理的异常(来自 Global.asax),这就是我收到这些错误的方式。这只是偶尔发生,因为我在负载平衡中设置了关联性,因此用户只是偶尔会被发送到场中的不同服务器。 如果您偶尔收到此消息,请再次查看此答案,它可以帮助您找到原因***.com/questions/1821243/… 我不认为他们在谈论负载平衡环境。此外,我可以通过删除关联 cookie 以登陆不同的服务器然后重新发送回发来一致且可预测地导致异常。所以我知道问题在于验证两台服务器之间的视图状态键。 (我的意思是验证viewstate mac(不是key)) 【参考方案1】:

我们的一台服务器在 Windows 更新上落后了,运行这些更新后问题似乎消失了。我重新运行了之前一直调用此异常的确切测试,并且没有任何问题。

【讨论】:

以上是关于机器密钥不起作用 - viewstate mac 失败的主要内容,如果未能解决你的问题,请参考以下文章

Jekyll --watch 命令在共享文件夹 (nfs) Mac 主机中不起作用,使用 Virtual box Ubuntu 来宾机器

颤振热重新加载在android studio(mac)中不起作用

Android Studio Mac 键盘映射在 Windows 上不起作用

在 Mac 中使用 C++ 读取 UTF-8 数据不起作用

为 Mac 生成特定于机器的密钥

如何从本地机器\软件中删除密钥?