我正在尝试将.NET MVC应用程序部署到GoDaddy服务器。我的一个页面上有一个Html.AntiForgeryToken,每当我点击它时就会抛出异常。
Validation of viewstate MAC failed. If this application is hosted by a Web Farm or cluster, ensure that <machineKey> configuration specifies the same validationKey and validation algorithm. AutoGenerate cannot be used in a cluster.
我使用以下网址生成了一个机器密钥
http://aspnetresources.com/tools/machineKey
并将页面viewStateEncryptionMode设置为“Always”
<pages viewStateEncryptionMode="Always">
然而,我仍然收到错误,并且对于下一步该做什么感到迷茫。任何建议都将不胜感激。
答案 0 :(得分:0)
我终于明白了。我做了一点google搜索,发现如果我不清除浏览器上的缓存,它将保留无效的viewstate。显然,除非所有的Chrome浏览器窗口都关闭(我使用了大量的Chrome浏览器),否则chrome会在每个连续的浏览器中保留一些相似的viewstate,即使缓存已被清除。
我发现代码在Firefox和IE中尝试成功了。然后我关闭了所有的chrome窗口(清除缓存后)并重新启动。然后,我能够成功导航到包含AntiForgeryToken的页面。