DNN 服务器 - System.Runtime.InteropServices.COMException:数据无效

DNN Server - System.Runtime.InteropServices.COMException: The data is invalid

我们的一个生产服务器 运行 DNN (DotNetNuke) 最近在重启后停止工作。现在所有请求都会出现以下错误:

[COMException (0x8007000d): The data is invalid. (Exception from HRESULT: 0x8007000D)]
   System.Runtime.InteropServices.Marshal.ThrowExceptionForHRInternal(Int32 errorCode, IntPtr errorInfo) +0
   System.Web.Handlers.AssemblyResourceLoader.EnsureHandlerExistenceChecked() +340
   System.Web.Handlers.AssemblyResourceLoader.IsValidWebResourceRequest(HttpContext context) +15
   System.Web.Security.FormsAuthenticationModule.OnEnter(Object source, EventArgs eventArgs) +300

   System.Web.SyncEventExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute() +139
   System.Web.HttpApplication.ExecuteStepImpl(IExecutionStep step) +195
   System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously) +88

机器是运行WindowsServer 2012/IIS8.5/ASP.NET4.5.

我搜索了错误并看到 web.config 可能格式不正确 XML 的建议,所以我检查了一下,没问题,并且一年多没有改变。

我还看到了安装 IIS URL 重写模块的建议。我试过了,但仍然没有成功,而且该网站已经运行多年但没有安装它。

完整的 web.config(减去连接字符串)在这里:pastebin。com/GpqB5H0U。

这是事件查看器中的错误:

或作为文本:pastebin。com/paUvF0he

由于问题似乎是由重启引起的,所以我将服务器恢复到一周前的备份,并且运行良好,直到下次重启时,错误再次出现。我检查了一下,没有任何 windows 会影响它的组策略更新或更改。

如有任何想法,我们将不胜感激。

所以我终于修复了它,我会 post 解决方案,如果它能帮助其他人,虽然我怀疑它是我们设置的独特之处。

引导我查看 webresource.axd,因为它在 EnsureHandlerExistenceChecked() 方法的评论中,我发现不知何故,一个名为 webresource.axd 的文件夹有自己的 web.config 文件已在网站的根文件夹中创建。它没有任何我能看到的用途,所以我删除了文件夹及其内容,突然一切都开始工作了。

感谢所有回复的人。 @dai 你想 post 你的评论作为答案,这样我就可以给你找到解决方案的荣誉吗?