按钮点击完,隔一段时间再去点的话,有时就会突然出现这个错误,但是重新打开浏览器再查看就不会了,
没有用到动态控件,也没有改写viewstate任何内容错误信息如下
无法验证数据。 
说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。 异常详细信息: System.Web.HttpException: 无法验证数据。源错误: 执行当前 Web 请求期间生成了未处理的异常。可以使用下面的异常堆栈跟踪信息确定有关异常原因和发生位置的信息。  堆栈跟踪: 
[HttpException (0x80004005): 无法验证数据。]
   System.Web.Configuration.MachineKey.GetDecodedData(Byte[] buf, Byte[] modifier, Int32 start, Int32 length, Int32& dataLength) +196
   System.Web.UI.LosFormatter.Deserialize(String input) +60[HttpException (0x80004005): Authentication of viewstate failed.  1) If this is a cluster, edit <machineKey> configuration so all servers use the same validationKey and validation algorithm.  AutoGenerate cannot be used in a cluster.  2) Viewstate can only be posted back to the same page.  3) The viewstate for this page might be corrupted.]
   System.Web.UI.LosFormatter.Deserialize(String input) +118
   System.Web.UI.Page.LoadPageStateFromPersistenceMedium() +102[HttpException (0x80004005): Invalid_Viewstate
Client IP: 61.149.179.58
Port: 47265
User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.2; MyIE2; .NET CLR 1.1.4322)
ViewState: dDwtMTkzNzYzNDI4Ozs+xIzdGigW04R/lN5Nxyo+Izj7Vvs=
   System.Web.UI.Page.LoadPageStateFromPersistenceMedium() +448
   System.Web.UI.Page.LoadPageViewState() +18
   System.Web.UI.Page.ProcessRequestMain() +447 

解决方案 »

  1.   

    偶也碰到,现终于解决了..如下:
         1.解决方法:在Page指令中设置禁止MAC(身份验证代码 ):
    <% @ Page EnableViewStateMac="false">   个人分析:当网页提交给本身时,服务器会通过MAC以检查视图的状态,看状态是否在客户端被更改.但这也就导至一个潜在的问题,即服务器端的状态一般保持时间很短,如果在服务器上状态消亡后再提交页面的话,就会造成MAC验证不通过,产生无法验证的错误提示.   这个解决方法也存在很多麻烦,比如需要在每个提交给自身的页面加上这条指令.而且存在一些安全隐患,如有人恶意更改视图状态等.还望有谁能提供更佳的方案.