鲨丁鱼.net技术小栈

这里讨论.net的web和form开发,还有其它关于WEB开发和安全的全部知识点,顺带一些经典的有意思的杂文!
  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理
“/”应用程序中的服务器错误。
--------------------------------------------------------------------------------
 
验证视图状态 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\b3a7c375\e539b258\App_Web_wqg_c3yb.4.cs    行: 0 
 
堆栈跟踪: 
 
 
[ViewStateException: 无效的视图状态。
Client IP: 125.110.146.50
Port: 3938
User-Agent: Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.2; Trident/4.0; .NET CLR 1.1.4322; .NET CLR 2.0.50727; .NET CLR 3.0.04506.648; .NET CLR 3.5.21022)
ViewState: /wEPDwUKMTE4NjY0ODg3MQ9kFgICAw9kFjACCQ8QDxYGHg1EYXRhVGV4dEZpZWxkBQdDb2xOYW1lHg5EYXRhVmFsdWVGaWVsZAUCSUQeC18hRGF0YUJvdW5kZ2QQFQkM77yN5LiN6ZmQ77yNI+ato+W8j+W3pSjmnLrlhbPjgIHkuovkuJrjgIHlm73kvIEpI+WQiOWQjOW3pSjmnLrlhbPjgIHkuovkuJrjgIHlm73kvIEpGOeLrOiHquWKnuS8geS4muOAgeWFrOWPuCHkvIHkuJrjgIHlhazlj7jogqHkuJzmiJblkIjkvJnkurob56eB6JCl5LyB5Lia44CB5YWs5Y+45ZGY5belD+S4quS9k+aIt+iAgeadvw/kuKrkvZPmiLflkZjlt6UG5YW25a6DFQkAATEBMgEzATQBNQE2ATcBOBQrAwlnZ2dnZ2dnZ2dkZAIXDxAPFgYfAAUH
 
 
解决方法:

1.可以在当前页面的<page ...>里加两个属性:
enableEventValidation="false" viewStateEncryptionMode ="Never"

2.当然还可以在web.config里加入:(<system.web>之间)
<pages enableEventValidation="false" viewStateEncryptionMode ="Never" />

其余方法

在web.config中的pages节点上添加enableviewstatemac=false


附带:::::

一般而言是因为你的某些操作修改了视图状态,我猜测你可能使用了ajax并在客户端用javascript动态添加了某些项

1. 在出错页面的 <%@ page %>中加enableviewstatemac="false"无效。
2. 在web.config的 <system.web>节中加
<machineKey validationKey="3FF1E929BC0534950B0920A7B59FA698BD02DFE8" decryptionKey="280450BB36319B474C996B506A95AEDF9B51211B1D2B7A77" decryption="3DES" validation="SHA1"/>

我的问题是加入:<machineKey validationKey="3FF1E929BC0534950B0920A7B59FA698BD02DFE8" decryptionKey="280450BB36319B474C996B506A95AEDF9B51211B1D2B7A77"/> 解决