无法验证数据。在System.Web.Configuration.MachineKeySection.GetDecodedData

时间:2010-04-16 23:42:21

标签: asp.net exception viewstate

我有几个网站每天总共获得大约3000次综合浏览量,我每天大约有5到10次这个视图状态错误,在global.asax中被捕获:

System.Web.HttpException:无法验证数据。 System.Web.Configuration.MachineKeySection.GetDecodedData(Byte [] buf,Byte []修饰符,Int32 start,Int32 length,Int32& dataLength)在System.Web.UI.ObjectStateFormatter.Deserialize(String inputString)

我试过了:

  • 在所有网站的web.config中对机器密钥进行硬编码
  • 在machine.config
  • 中对machien键进行硬编码
  • 将项目添加到所有网站的web.config的pages部分。

机器密钥如下:

<machineKey validationKey="key goes here" decryptionKey="key goes here" validation="SHA1" decryption="AES" />

页面部分如下所示:

<pages renderAllHiddenFieldsAtTopOfForm="true" validateRequest="false"  enableEventValidation="false" viewStateEncryptionMode="Never">

错误与应用程序池回收无关,我可以说,因为池设置为每100,000个请求回收一次。我没有运行Web场或Web园。我经常连续得到两个或三个这样的错误,好像用户收到错误,返回,然后再次点击链接。

有人有什么想法吗?

1 个答案:

答案 0 :(得分:2)

在慢速互联网连接引起之前,我看到过“随机”ViewState错误。缓慢的连接将导致页面可视地呈现给用户,但它没有完全加载。然后,用户将对表单采取行动,从而发生“随机”问题。

查看是否可以将异常时间戳与IIS日志中请求的特定页面相关联。然后,您可以尝试使用Firefox Throttle等方法重新创建低带宽方案。

下面的类似问题证实了我的经历,也可能证实了你所看到的:

ASP.NET: Unable to validate data