我有一个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.上面最后在单个服务器上解释:)
该错误是因为您的应用程序域已被回收/重新启动.当发生这种情况时,应用程序和机器密钥设置为auto,它会发生变化.这会影响资源网址(.axd)网址中信息的解密.设置固定的机器密钥将防止它再次发生.
请查看此信息以获取有关类似案例的更多信息(解释与viewstate验证有关,但原因是相同的):http://www.developmentnow.com/blog/InvalidViewstate+Or+Unable+To+验证+数据+ Error.aspx
我也一直在想它.在我看到这个问题之后,我再次得到了它:这是否试图破坏我的ASP.Net网站的安全性?...我刚刚回答的非常相似.我觉得它是围绕某些东西重新启动的,因为当我们发布了回收应用程序的东西时,错误显示在日志中,但我没有任何其他来源说明它的关系(今天我在invalidviewstate上找到了这个案例,因为机器密钥更改:))
PS.上面最后在单个服务器上解释:)