我是ASP.NET的新手.我最近从我的网站设置了自动发送的电子邮件,通知我未处理的例外情况.就在几个小时前的3分钟内,有10个未处理的异常,所有堆栈跟踪都相似.我不明白的错误信息中有很多,但我不喜欢这种看法.
以下是其中一封电子邮件:
An unhandled exception occurred: Message: Padding is invalid and cannot be removed. Stack Trace: 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, IVType ivType, Boolean useValidationSymAlgo) at System.Web.UI.Page.DecryptStringWithIV(String s, IVType ivType) at System.Web.Handlers.AssemblyResourceLoader.System.Web.IHttpHandler.ProcessRequest(HttpContext context) at System.Web.HttpApplication.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute() at System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously)
这是企图侵入我的网站或其他什么?
非常感谢那些提供答案和评论的人,这些答案和评论指出了我正确的方向来获得这个例外的答案.这可能很难确定,特别是在Web场中没有出现时.
IE 5.5没有引起我之前想到的问题.
它不容易找到,但其中一位工作人员在我的网站主持人论坛上发帖提到了Viewstate错误的报告.原因归结于asp工作进程或服务器回收.
asp worker进程设置引用machine.config文件中的processModel元素.有关详细信息,请参阅http://msdn.microsoft.com/en-us/library/7w2sway1(VS.80).aspx.
建议的修复方法是在web.config文件中设置加密的machineKey.Machine Key节点位于system.web元素中.
由于具有MachineKey Generator的方便的ASP.NETResources站点,这很容易完成并解决了问题.请参阅http://www.aspnetresources.com/tools/keycreator.aspx.
当程序集资源处理程序获得无效请求时,抛出此异常.这不太可能与任何恶意活动有关; 它通常是由服务器上配置不正确的机器配置引起的.
一些背景:
ASP.NET具有通过HttpHandler从程序集(dll)公开资源的内置机制.JavaScripts和图像等资源可以作为文本存储在程序集中,并由浏览器通过.axd处理程序请求.但出于安全原因,处理程序不接受资源的纯文本位置,这可能会暴露有关代码如何工作的线索.相反,它使用服务器上的machine.config中的信息来加密资源的唯一标识符.请求资源时会抛出此异常,但是当服务器尝试解密所提供的标识符时,它将失败.