逐浪云主机

立即开通

验证视图状态MAC失败的解决该方法

作者:本站编辑 发布时间:2012-04-24 来源:本站原创 点击数:

出错提示:

  验证视图状态 MAC 失败。如果此应用程序由网络场或群集承载,请确保 <machineKey> 配置指定了相同的 validationKey 和验证算法。不能在群集中使用 AutoGenerate。

说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。

异常详细信息: System.Web.HttpException: 验证视图状态 MAC 失败。如果此应用程序由网络场或群集承载,请确保 <machineKey> 配置指定了相同的 validationKey 和验证算法。不能在群集中使用 AutoGenerate。

源错误:


 

				[没有相关的源行]

源文件: c:\windows\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET Files\root\f0178041\28ef7991\App_Web_lobgpcw2.4.cs    行:
 

解决此问题方法:

验证视图状态 mac 失败。如果此应用程序由网络场或群集承载 请确保 machinekey 配置指定了相同的 validationkey 和验证算法。不能在群集中使用 autogenerate。

总是莫名其妙的遇到这种问题,下面我总结了一些常用的解决方案,基本可以解决大家在asp.net编程中遇到的问题。但验证视图状态 mac 失败问题,微软是要负一部分责任的。本来好好的一个程序,运行一段时间突然就出现这种问题了,大家是不是有同感。

方法一:

验证视图状态 MAC 失败。
可以在当前页面的<page ...>里加两个属性:
enableEventValidation="false" viewStateEncryptionMode ="Never"

当然还可以在web.config里加入:
<pages enableEventValidation="false" viewStateEncryptionMode ="Never" />

 

方法二:

asp.net的runat='server' 会对ViewStat进行MAC的加密,使得提交数据时只能对同一页面进行。在接收页加上

@ page EnableViewStateMac="false"就可以接收另一页上post回来的数据,即在.aspx第一行加上下面代码即可:

enableviewstatemac="false"

 

方法三:

方法四:

web.config中<machineKey>中的validationKey。请仔细看错误提示。此节需要自己添加。
http://msdn.microsoft.com/zh-cn/library/w8h3skw9(VS.80).aspx

 

方法五:

如果用户无法修改程序源码,则可以在IIS的进程池中,点属性,将用户权限设为本地用户,如下图所示:

本文责任编辑: 加入会员收藏夹 点此参与评论>>
复制本网址-发给QQ/微信上的朋友