【发布时间】:2020-12-03 23:38:54
【问题描述】:
我们的一台运行 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
机器运行的是 Windows Server 2012/IIS8.5/ASP.NET 4.5。
我已搜索错误并看到 web.config 可能存在格式错误的 XML 的建议,所以我检查了一下,它很好,并且一年多没有改变。
我还看到了我们安装 IIS URL 重写模块的建议。我试过了,但仍然没有运气,而且该网站已经运行多年而没有安装它。
完整的 web.config(减去连接字符串)在这里:pastebin.com/GpqB5H0U。
这是事件查看器中的错误:
或作为文本:pastebin.com/paUvF0he
由于问题似乎是由重新启动引发的,我将服务器恢复为一周前的备份,它运行良好,直到下次重新启动,错误再次出现。我检查了一下,没有任何 Windows 更新或组策略更改会影响它。
任何想法都将不胜感激。
【问题讨论】:
-
你能显示完整的 web.config 和模块已安装在 IIS 上吗?最好显示登录事件查看器,以便我找到问题。重启服务器后,DNN 是否正常启动?
-
完整的 web.config(减去连接字符串)在这里:pastebin.com/GpqB5H0U。
-
这是事件查看器中的错误:pastebin.com/paUvF0he
-
堆栈跟踪表明
FormsAuthenticationModule正在抱怨。你是如何在你的项目中配置的?我猜测 .NET Framework 的系统范围的 Windows 更新打破了 DNN 中的假设(无论如何,DNN 是古老的)。 -
我认为您应该在继续任何其他调查之前更新到 .NET Framework 4.8 - 我愿意赌一两美元,该问题与 Microsoft 发布的
SameSitecookie 补丁有关今年改用 .NET Framework。
标签: c# asp.net iis dotnetnuke