【问题标题】:How I can fix MAC error in asp.net application?如何修复 asp.net 应用程序中的 MAC 错误?
【发布时间】:2011-07-12 13:18:19
【问题描述】:

我有一个 ASP.NET 应用程序,一切正常,但几分钟后,当我点击一个按钮时,它给了我这个错误:

视图状态 MAC 验证失败。如果此应用程序由 Web 托管 场或集群,确保 配置指定 相同的validationKey和validation 算法。无法使用自动生成 在一个集群中。说明:一个 期间发生未处理的异常 当前网络的执行 要求。请查看堆栈跟踪 有关错误的更多信息 以及它起源于代码的位置。

异常详情: System.Web.HttpException:验证 视图状态 MAC 失败。如果这 应用程序由 Web Farm 托管或 集群,确保 配置指定相同 验证密钥和验证 算法。无法使用自动生成 在一个集群中。

我该如何解决这个问题?

【问题讨论】:

  • 它发生在我使用过 session 和 viewstate 的 default.aspx 页面中,因为我使用了很多 asp.net 组件
  • blogs.msdn.com/b/tom/archive/2008/03/14/… - 你看过这里提供的描述和解决方案了吗?
  • GridView,我的页面很重,所有页面都使用了web表单

标签: c# asp.net


【解决方案1】:

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

过去我使用过这种方法:

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

【讨论】:

  • 不要这样做这样做你已经删除了对存储在视图状态中的值的所有保护。真正找出问题所在并加以解决要好得多。
【解决方案2】:

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

【讨论】:

    猜你喜欢
    • 2019-02-24
    • 2020-11-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-10-14
    • 2013-05-20
    • 1970-01-01
    相关资源
    最近更新 更多