【问题标题】:Validation of viewstate MAC failed -View State Error视图状态 MAC 验证失败 - 视图状态错误
【发布时间】:2010-01-15 06:06:12
【问题描述】:

在我的网站中,当网页空闲超过 5 分钟时,该网页在我刷新之前无法工作。出现以下错误:

错误: Sys.WebForms.PageRequestManagerServerErrorException: 视图状态 MAC 验证失败。如果 此应用程序由 Web 托管 场或集群,确保 配置指定 相同的validationKey和validation 算法。无法使用自动生成 在一个集群中。

我已经在使用EnableEventValidation="false" ViewStateEncryptionMode="Never" ValidateRequest="false"

但是,没有什么对我有用。

【问题讨论】:

  • 你只有一个服务器?
  • 是的。我只使用单个服务器

标签: c# asp.net


【解决方案1】:

虽然这是一个老问题,但我还是会回答,因为它可能对其他人有所帮助。 所以这几天我遇到了这个问题,我意识到我在将我的cookie配置为HttpOnly和Require SSL后开始出现这个错误:

  </system.web>
    <httpCookies httpOnlyCookies="true" requireSSL="true" />
  </system.web>

原来我只是忘记配置 Visual Studio 以打开我网站的 SSL URL。所以只要打开普通的Url,cookies就发不出去,这就是报错的原因。

要更改默认 URL,您只需要弄清楚您的 SSL url 是什么:单击解决方案资源管理器上的项目并按 F4(不是右键单击 -> 属性),然后您会在下面看到 SLL URL开发服务器部分。之后,进入项目属性页面(右键 -> 属性),在 Web 选项卡中,将 SSL Url 作为 Project Url。

【讨论】:

    【解决方案2】:

    确保集群上的所有服务器都使用相同的加密密钥。

    【讨论】:

    • 嗨!笏加密密钥?我没有使用任何加密密钥!
    【解决方案3】:

    如果您从具有指向不同页面的操作的表单进行回发,有时会发生这种情况。

    【讨论】:

    • 有时不行!通常,即使不使用回发,几乎所有页面都会发生这种情况。
    猜你喜欢
    • 2013-03-11
    • 1970-01-01
    • 2010-09-24
    • 2011-12-18
    相关资源
    最近更新 更多