当前位置:  开发笔记 > 编程语言 > 正文

WebResource.axd上的"填充无效且无法删除"异常

如何解决《WebResource.axd上的"填充无效且无法删除"异常》经验,为你挑选了1个好方法。

我有一个ASP.NET 2.0应用程序,在我们的本地环境中工作正常.发布到测试服务器时,我们在服务器上出现间歇性错误.

这是最常见的:

填充无效,无法删除.描述:执行当前Web请求期间发生未处理的异常.请查看堆栈跟踪以获取有关错误及其源自代码的位置的更多信息.

异常详细信息:System.Security.Cryptography.CryptographicException: 填充无效,无法删除.

来源错误:

在执行当前Web请求期间生成了未处理的异常.可以使用下面的异常堆栈跟踪来识别有关异常的起源和位置的信息.

堆栈跟踪:

[CryptographicException:填充无效,无法删除.]
System.Security.Cryptography.RijndaelManagedTransform.DecryptData(Byte [] inputBuffer,Int32 inputOffset,Int32 inputCount,Byte []&outputBuffer,Int32 outputOffset,PaddingMode paddingMode,Boolean fLast)+1545747
System.Security.Cryptography.RijndaelManagedTransform.TransformFinalBlock(Byte [] inputBuffer,Int32 inputOffset,Int32 inputCount)+257
System.Security.Cryptography.CryptoStream.FlushFinalBlock()+30 System.Web.Configuration.MachineKeySection.EncryptOrDecryptData(Boolean fEncrypt,Byte [] buf,Byte []修饰符,Int32 start,Int32 length,Boolean useValidationSymAlgo)+164
System.Web.UI.Page.DecryptString(String s)+83
System.Web.Handlers.AssemblyResourceLoader.System.Web.IHttpHandler.ProcessRequest(HttpContext context)+148
System.Web.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute()+358 System.Web.HttpApplication.ExecuteStep(IExecutionStep step ,Boolean&completedSynchronously)+64

这发生在对特定WebResource.axd请求的请求上.

我们看到的另一个错误是:

验证视图状态MAC失败.如果此应用程序由Web场或群集托管,请确保配置指定相同的validationKey和验证算法.AutoGenerate不能在群集中使用.描述:执行当前Web请求期间发生未处理的异常.请查看堆栈跟踪以获取有关错误及其源自代码的位置的更多信息.

异常详细信息:System.Web.HttpException:viewstate MAC验证失败.如果此应用程序由Web场或群集托管,请确保配置指定相同的validationKey和验证算法.AutoGenerate不能在群集中使用.

发布表单时偶尔会发生此错误.

在你跳入并告诉我这个错误的明显(通常)答案之前,请考虑一下:

该应用程序部署到IIS6上的Windows Server 2003

它不在Web场上.这里只使用一个网络服务器.

应用程序池标识是一个自定义服务帐户,我确实aspnet_regiss -ga 在服务器上运行.没有效果.

eglasius.. 24

该错误是因为您的应用程序域已被回收/重新启动.当发生这种情况时,应用程序和机器密钥设置为auto,它会发生变化.这会影响资源网址(.axd)网址中信息的解密.设置固定的机器密钥将防止它再次发生.

请查看此信息以获取有关类似案例的更多信息(解释与viewstate验证有关,但原因是相同的):http://www.developmentnow.com/blog/InvalidViewstate+Or+Unable+To+验证+数据+ Error.aspx

我也一直在想它.在我看到这个问题之后,我再次得到了它:这是否试图破坏我的ASP.Net网站的安全性?...我刚刚回答的非常相似.我觉得它是围绕某些东西重新启动的,因为当我们发布了回收应用程序的东西时,错误显示在日志中,但我没有任何其他来源说明它的关系(今天我在invalidviewstate上找到了这个案例,因为机器密钥更改:))

PS.上面最后在单个服务器上解释:)



1> eglasius..:

该错误是因为您的应用程序域已被回收/重新启动.当发生这种情况时,应用程序和机器密钥设置为auto,它会发生变化.这会影响资源网址(.axd)网址中信息的解密.设置固定的机器密钥将防止它再次发生.

请查看此信息以获取有关类似案例的更多信息(解释与viewstate验证有关,但原因是相同的):http://www.developmentnow.com/blog/InvalidViewstate+Or+Unable+To+验证+数据+ Error.aspx

我也一直在想它.在我看到这个问题之后,我再次得到了它:这是否试图破坏我的ASP.Net网站的安全性?...我刚刚回答的非常相似.我觉得它是围绕某些东西重新启动的,因为当我们发布了回收应用程序的东西时,错误显示在日志中,但我没有任何其他来源说明它的关系(今天我在invalidviewstate上找到了这个案例,因为机器密钥更改:))

PS.上面最后在单个服务器上解释:)


我只想补充说,一旦你做了Freddy推荐的所有事情(很棒的答案,按他们的方式!) - 不要忘记清除你的cookie和缓存.对我来说,问题是由添加ASP.NET MVC AntiForgeryToken引起的...这显然会添加一个cookie,即使你遵循Freddy的所有指示,你也会看到同样的错误.Unitl ...你清除你的cookie并缓存!
推荐阅读
保佑欣疼你的芯疼
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有