【发布时间】:2010-09-23 12:24:49
【问题描述】:
我有一个在本地环境中运行良好的 ASP.NET 2.0 应用程序。当发布到测试服务器时,我们会在服务器上遇到间歇性错误。
这是最常见的:
填充无效,无法删除。 说明:执行当前 Web 请求期间发生未处理的异常。请查看堆栈跟踪以获取有关错误及其源自代码的位置的更多信息。
异常详情: System.Security.Cryptography.CryptographicException: 填充无效,不能 已删除。
来源错误:
产生了一个未处理的异常 在当前执行期间 网络请求。有关的信息 异常的起源和位置 可以使用异常识别 下面的堆栈跟踪。
堆栈跟踪:
[CryptographicException: 填充是 无效,无法删除。]
System.Security.Cryptography.RijndaelManagedTransform.DecryptData(字节[] 输入缓冲区,Int32 输入偏移量,Int32 输入计数,字节 []& 输出缓冲区, Int32 outputOffset, PaddingMode paddingMode, Boolean fLast) +1545747
System.Security.Cryptography.RijndaelManagedTransform.TransformFinalBlock(字节[] 输入缓冲区,Int32 输入偏移量,Int32 输入计数)+257
System.Security.Cryptography.CryptoStream.FlushFinalBlock() +30 System.Web.Configuration.MachineKeySection.EncryptOrDecryptData(布尔 fEncrypt, Byte[] buf, Byte[] 修饰符, Int32 开始,Int32 长度,布尔值 使用ValidationSymAlgo) +164
System.Web.UI.Page.DecryptString(字符串 s) +83
System.Web.Handlers.AssemblyResourceLoader.System.Web.IHttpHandler.ProcessRequest(HttpContext 上下文)+148
System.Web.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute() +358 System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean & completedSynchronously) +64
这发生在对特定 WebResource.axd 请求的请求上。
我们看到的另一个错误是:
视图状态 MAC 验证失败。 如果此应用程序由 Web 托管 场或集群,确保 配置指定 相同的validationKey和validation 算法。无法使用自动生成 在一个集群中。 描述:一个 期间发生未处理的异常 当前网络的执行 要求。请查看堆栈跟踪 有关错误的更多信息 以及它起源于代码的位置。
异常详情: System.Web.HttpException:验证 视图状态 MAC 失败。如果这 应用程序由 Web Farm 托管或 集群,确保 配置指定相同 验证密钥和验证 算法。无法使用自动生成 在一个集群中。
在发布表单时偶尔会发生此错误。
现在,在您介入并告诉我此错误的明显(通常)答案之前,请考虑一下:
- 应用程序部署到 IIS6 上的 Windows Server 2003
- 它不在网络场中。此处仅使用一台网络服务器。
- 应用程序池标识是一个自定义服务帐户,我确实在服务器上运行了
aspnet_regiss -ga <username>。没有效果。
【问题讨论】:
-
为此添加了明确的答案,请查看:)
-
还有什么解决方案吗?关于您报告的第一个错误,我在 25 分钟内收到了 15 份 Exceptioneer 报告。在安装 fx3.5 sp1 后,Rackspace supposed 昨晚重新启动,我认为这些都是从那里开始的。但是,我刚刚发现他们“忘记”按照我们的票重新启动它。这是我们关于错误的报告之一的链接 - exceptioneer.com/Share/…。
-
我从来没有解决过这个问题。它只是从来没有在我们的优先列表中。现在我在做一个不同的项目,所以......我知道的帮助不多。
标签: asp.net viewstate webresource.axd