我如何在asp.net应用程序中修复MAC错误?

时间:2011-03-10 08:51:36

标签: c# asp.net

我有一个ASP.NET应用程序所有东西都运行正常但是在我点击一个按钮几分钟后它就会给我这个错误:

  

对viewstate MAC的验证失败。如果此应用程序由Web托管   农场或集群,确保    配置指定   相同的validationKey和验证   算法。无法使用AutoGenerate   在群集中。描述:一个   未处理的异常发生在   当前网络的执行   请求。请查看堆栈跟踪   有关错误的更多信息   它起源于代码。

     

异常详细信息:   System.Web.HttpException:验证   视图状态MAC失败。如果这   应用程序由Web Farm托管或   集群,确保   配置指定相同   validationKey和验证   算法。无法使用AutoGenerate   在群集中。

我如何解决这个问题?

2 个答案:

答案 0 :(得分:0)

这篇博文详细介绍了这一点:
http://www.eukhost.com/forums/f15/fix-validation-viewstate-mac-failed-6085/

过去我使用过这种方法:

  <system.web>
  <pages enableViewStateMac="false" />
  </system.web>

答案 1 :(得分:0)

将enableviewstatemac设置为false意味着如果编码的视图状态发生更改,您的视图状态将不会被旧版本替换,这可能是一个安全问题。而不是这个,在看到你的错误之后,如果你在web场景中,则在web.config中放置一个持久性机器密钥,因为动态生成的机器密钥往往会出现view_state错误。