【问题标题】:"Validation of viewstate MAC failed" after applying server updates应用服务器更新后“视图状态 MAC 验证失败”
【发布时间】:2016-09-26 23:36:02
【问题描述】:

我们正在托管一个 .NET 框架 4.0 版的 ASP.NET Webforms 站点。

上周将服务器补丁应用到我们的 .NET 站点后,我们开始收到以下错误:

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

只有一小部分网站访问者遇到此错误。我们不能自己复制它。超过一半的错误是由移动设备产生的(这很可疑,因为移动设备只占我们访问者的一小部分)。我们托管在单个 Windows 2008R2 服务器上。该错误是由许多不同的 .NET 页面生成的,因此不限于任何一个页面。

尽管我们不在服务器场上,但我们在 web.config 文件中添加了一个静态 machineKey 条目,但这并没有什么不同。

如前所述,这个问题是在我们上周对服务器应用了几次 Windows 更新后立即出现的。有什么想法吗?

以下是我们应用的更新列表:

{7CA28304-D86F-4ACA-97FA-D126E0D02416}

{E5FD83F7-AD96-4105-94BE-27947D5D638F}

{DC65D0CA-893D-4BFE-8FE9-DF4ED90652DB}

KB3081320

KB3092601

KB3097988

KB3101722

KB3108371

KB3108381

KB3108664

KB3109094

KB3109103

KB3109560

KB3110329

KB3118401

KB3122646

KB3126041

KB3126587

KB3127219

KB3133043

KB3135982

KB3139398

KB3139914

KB3139921

KB3139940

KB3140709

KB3141083

KB3142023

KB3142041

KB3145739

KB3146706

KB3146963

KB3147071

KB3149090

KB3153171

KB3156016

KB3156017

KB3156019

KB3159398

KB3161561

KB3161949

KB3163244

KB3164033

KB3164035

KB3167679

KB3170455

KB3175443

KB3177723

KB3177725

KB3178034

KB3099869

KB3097996

KB2901983

KB3098781

【问题讨论】:

  • 您是否在系统事件日志中看到任何应用程序池回收事件?
  • 没有。但即使应用程序池正在回收我们在 web.config 文件中添加了静态 machineKey 条目这一事实,也应该将其作为原因消除。
  • 你读过this吗?
  • 是的。如前所述,我们没有在多台服务器上运行,也没有使用自动生成的 machineKey。

标签: asp.net viewstate


【解决方案1】:

看来这毕竟不是 Windows 补丁造成的。我们在过去重新启动服务器后看到过这种行为,但远不及这种规模。我们推测这是我们在一年中非常忙碌的时候为我们的用户群完成的第一次服务器重启。

此错误似乎是由于用户登录我们的站点,然后在服务器重新启动之间未使用浏览器(站点选项卡打开)所致。大多数收到此错误的用户都在移动设备上——通常不会在两次使用之间关闭浏览器应用程序)。

【讨论】:

    猜你喜欢
    • 2015-09-19
    • 2010-09-24
    • 2011-12-18
    相关资源
    最近更新 更多