在最近的负载测试,我已经得到了一些奇怪的“索引超出范围异常的”

堆栈跟踪:

 at System.Security.Cryptography.RijndaelManagedTransform.DecryptData(Byte[] inputBuffer, Int32 inputOffset, Int32 inputCount, Byte[]& outputBuffer, Int32 outputOffset, PaddingMode paddingMode, Boolean fLast)
   at System.Security.Cryptography.RijndaelManagedTransform.TransformFinalBlock(Byte[] inputBuffer, Int32 inputOffset, Int32 inputCount)
   at System.Security.Cryptography.CryptoStream.FlushFinalBlock()
   at System.Web.Configuration.MachineKeySection.EncryptOrDecryptData(Boolean fEncrypt, Byte[] buf, Byte[] modifier, Int32 start, Int32 length, Boolean useValidationSymAlgo)
   at System.Web.UI.Page.DecryptString(String s)
   at System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint)

我们不使用服务器场或集群,并且我不使用在应用任何加密。

似乎这是在幕后.NET类发生。

我想这已经是与视图状态,但我不能找出为什么这个被抛出。

任何想法?

有帮助吗?

解决方案

如果有人发起后,该应用程序开始发送与后视图状态的所有500KBs。通过回传半路上,用户感到厌烦,并点击别的东西。浏览器切断只视图状态的部分回发。服务器抛出说,视图状态是borked错误。我想这是一个2.0的应用程序与开启视图状态的加密功能。解决的办法是更积极地管理视图状态的大小。

事件验证异常更有可能当恶意用户制作一个自定义的回送响应的情况发生,所以我不认为事件验证这里所涉及的。

其他提示

只是一个猜测:有你在网站上禁用EventValidation?听起来象是试图创建一个手动回发或其它方式直接将数据插入到HTTP请求的POST数据,不计算ViewState字段正确的值。这反过来会导致解密壮观失败。

使用EventValidation打开,您会得到即使他们正确地计算出一切的例外,但至少这是一个有意义的异常。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top