我有几个网站每天总共获得大约 3000 次综合浏览量,我每天大约 5-10 次收到此 View 状态错误,在 global.asax 中捕获:
System.Web.HttpException:无法验证数据。在 System.Web.Configuration.MachineKeySection.GetDecodedData(Byte[] buf, Byte[] modifier, Int32 start, Int32 length, Int32& dataLength) at System.Web.UI.ObjectStateFormatter.Deserialize(String inputString)
我试过了:
机器键看起来像:
<machineKey validationKey="key goes here" decryptionKey="key goes here" validation="SHA1" decryption="AES" />
页面部分看起来像:
<pages renderAllHiddenFieldsAtTopOfForm="true" validateRequest="false" enableEventValidation="false" viewStateEncryptionMode="Never">
据我所知,这些错误与应用程序池回收无关,因为该池设置为每 100,000 个请求回收一次。我不是在经营网络农场或网络花园。我经常会连续收到两三个这样的错误,就好像用户收到错误一样,返回,然后再次单击链接。
谁有想法?
最佳答案
我之前见过由互联网连接速度慢引起的“随机”ViewState 错误。缓慢的连接会导致页面明显地呈现给用户,但它没有完全加载。然后用户将对表单采取行动,因此会出现“随机”问题。
查看是否可以将异常时间戳与 IIS 日志中请求的特定页面相关联。然后,您可以尝试使用类似 Firefox Throttle 的内容重新创建低带宽场景。 .
下面的类似问题证实了我的经历,也可能是你所看到的:
ASP.NET: Unable to validate data
关于asp.net - 无法验证数据。在 System.Web.Configuration.MachineKeySection.GetDecodedData,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2656636/