处理 asp:ScriptManager 时 mscorlib.dll 中的 ExecutionEngineException (80131506)
ExecutionEngineException (80131506) in mscorlib.dll when processing asp:ScriptManager
我最近刚开始收到 ExecutionEngineException (80131506),当时我 运行 我们任何现有的 ASP.NET 本地应用程序在 .aspx 页面中带有 asp:ScriptManger 标记。
错误信息是:
Application: w3wp.exe
Framework Version: v4.0.30319
Description: The process was terminated due to an internal error in the .NET Runtime at IP 00007FFB75209A99 (00007FFB75170000) with exit code 80131506.
这个问题是在我获得 Windows 10 周年更新后开始出现的,所以我认为这些可能是相关的,但这只是一个猜测。
这是我目前的发现:
- 当 运行 在我的机器上本地运行时,我们所有现有的具有 ScriptManagers 的应用程序都会发生这种情况。其中许多我已经一年多没有更新了。并且在其他非 Windows 10 周年纪念机器上仍能正常工作。我们没有其他具有最新 Windows 10 个更新的开发人员来测试它。
- 我收到了所有最新的 Windows 更新
- 我尝试了以前版本的应用程序(以防万一)
- 我先进行了修复,然后卸载并重新安装了 Visual Studio 2013
- 我在 Windows 功能
中关闭并重新打开了 IIS 和 .NET
- 我清除了 asp.net 个临时文件
- DebugDiag 输出显示如下:
.NET Call Stack
[[HelperMethodFrame_2OBJ]
(System.Reflection.PseudoCustomAttribute._GetSecurityAttributes)]
System.Reflection.PseudoCustomAttribute._GetSecurityAttributes(System.Reflection.RuntimeModule,
Int32, Boolean, System.Object[]ByRef)
mscorlib_ni!System.Reflection.PseudoCustomAttribute.GetCustomAttributes(System.Reflection.RuntimeAssembly,
System.RuntimeType, Boolean, Int32 ByRef)+13b
mscorlib_ni!System.Reflection.CustomAttribute.GetCustomAttributes(System.Reflection.RuntimeAssembly,
System.RuntimeType)+26
mscorlib_ni!System.Reflection.RuntimeAssembly.GetCustomAttributes(Boolean)+26
System_Web_Extensions_ni!System.Web.UI.AssemblyCache.SafeGetAjaxFrameworkAssemblyAttribute(System.Reflection.ICustomAttributeProvider)+1f
System_Web_Extensions_ni!System.Web.UI.AssemblyCache.GetAjaxFrameworkAssemblyAttribute(System.Reflection.Assembly)+3e
System_Web_Extensions_ni!System.Web.UI.ScriptManager.get_DefaultAjaxFrameworkAssembly()+181 System_Web_Extensions_ni!System.Web.UI.ScriptManager..ctor()+1c
ASP.includes_donorsearch_ascx.__BuildControlScriptManager1()+4e
ASP.includes_donorsearch_ascx.__BuildControlTree(ASP.includes_donorsearch_ascx)+72 ASP.includes_donorsearch_ascx.FrameworkInitialize()+3c
System_Web_ni!System.Web.UI.UserControl.InitializeAsUserControlInternal()+25 System_Web_ni!System.Web.UI.UserControl.InitializeAsUserControl(System.Web.UI.Page)+14
ASP.donorsearch_aspx.__BuildControlDonorSearch1()+87
ASP.donorsearch_aspx.__BuildControlcontentDefault(System.Web.UI.Control)+68
System_Web_ni!System.Web.UI.CompiledTemplateBuilder.InstantiateIn(System.Web.UI.Control)+10
System_Web_ni!System.Web.UI.MasterPage.InstantiateInContentPlaceHolder(System.Web.UI.Control,
System.Web.UI.ITemplate)+59
ASP._primary_master.__BuildControlprimaryContent()+114
ASP._primary_master.__BuildControlform3()+120
ASP._primary_master.__BuildControlTree(ASP._primary_master)+ef
ASP._primary_master.FrameworkInitialize()+3c
System_Web_ni!System.Web.UI.UserControl.InitializeAsUserControlInternal()+25 System_Web_ni!System.Web.UI.MasterPage.CreateMaster(System.Web.UI.TemplateControl,
System.Web.HttpContext, System.Web.VirtualPath,
System.Collections.IDictionary)+2a1
System_Web_ni!System.Web.UI.Page.get_Master()+38
System_Web_ni!System.Web.UI.Page.ApplyMasterPage()+f
System_Web_ni!System.Web.UI.Page.PerformPreInit()+34
System_Web_ni!System.Web.UI.Page.ProcessRequestMain(Boolean,
Boolean)+129 System_Web_ni!System.Web.UI.Page.ProcessRequest(Boolean,
Boolean)+85 System_Web_ni!System.Web.UI.Page.ProcessRequest()+49
System_Web_ni!System.Web.UI.Page.ProcessRequestWithNoAssert(System.Web.HttpContext)+17
System_Web_ni!System.Web.UI.Page.ProcessRequest(System.Web.HttpContext)+3b
ASP.donorsearch_aspx.ProcessRequest(System.Web.HttpContext)+26
System_Web_ni!System.Web.HttpApplication+CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute()+bd
System_Web_ni!System.Web.HttpApplication.ExecuteStep(IExecutionStep,
Boolean ByRef)+46
System_Web_ni!System.Web.HttpApplication+PipelineStepManager.ResumeSteps(System.Exception)+427
System_Web_ni!System.Web.HttpApplication.BeginProcessRequestNotification(System.Web.HttpContext,
System.AsyncCallback)+60
System_Web_ni!System.Web.HttpRuntime.ProcessRequestNotificationPrivate(System.Web.Hosting.IIS7WorkerRequest,
System.Web.HttpContext)+bb
System_Web_ni!System.Web.Hosting.PipelineRuntime.ProcessRequestNotificationHelper(IntPtr,
IntPtr, IntPtr, Int32)+32f [[InlinedCallFrame]]
System_Web_ni!System.Web.Hosting.PipelineRuntime.ProcessRequestNotification(IntPtr,
IntPtr, IntPtr, Int32)+1f
System_Web_ni!DomainNeutralILStubClass.IL_STUB_PInvoke(IntPtr,
System.Web.RequestNotificationStatus ByRef)+3d [[InlinedCallFrame]]
System_Web_ni!System.Web.Hosting.PipelineRuntime.ProcessRequestNotificationHelper(IntPtr,
IntPtr, IntPtr, Int32)+4d2 [[InlinedCallFrame]]
System_Web_ni!System.Web.Hosting.PipelineRuntime.ProcessRequestNotification(IntPtr,
IntPtr, IntPtr, Int32)+1f [[ContextTransitionFrame]]
似乎错误发生在构建控制 ScriptManager 期间的 Ajax 回调中。
ASP.includes_donorsearch_ascx.__BuildControlScriptManager1
- 我还注意到,当我尝试使用 JetBrains dotTrace 跟踪问题时,错误并未发生。 dotTrace 关闭 IIS 服务并直接 运行s 它。
我目前的猜测是我的机器出现问题或者 Windows 10 周年纪念版引入了这个问题。
有人以前见过这个问题吗?虽然错误总是出现在 ScriptManger 中,因为这个错误与 GC 有关,但我想知道问题是否出在其他地方,只是出现在这里。
我知道这没什么好继续的,但我认为其他人可能遇到了同样的问题?
谢谢。
约瑟夫
因此,我将 Windows 10 周年更新回滚到版本 1511,Web 应用程序再次开始正常工作。
除了回滚到以前的 Windows 版本之外,您是否找到了解决此问题的方法?我们看到了完全相同的行为,并且我们已经在多台机器上确认它在更新到周年更新后出现。我在这里记录了一个错误:https://connect.microsoft.com/VisualStudio/feedback/details/3111237/access-violation-exception-in-blobtoattributeset-instruction-in-clr-dll
更新: 我能够使用调试器进行探索(通过设置 VS 调试器以启用 .NET Framework 调试并下载所有必要的符号)以达到断点在调用 mscorlib 的 System.Reflection.RuntimeAssembly.GetCustomAttributes() 的异常堆栈跟踪中引用的代码中——对我们来说,它是 Owin.Loader.DefaultLoader.SearchForStartupAttribute()。
最终,我能够准确地 找出正在处理哪个程序集并导致抛出异常。对我们来说,它是 Sax.Barcodes.ASP.dll,一个不再主动维护的 古老的 程序集。幸运的是,我们将能够从我们的网站代码中删除对该程序集的所有引用(我们可能早就应该这样做了)。
我建议您也在调试器中解决这个问题,并准确查明是哪个程序集导致 mscorlib 停滞不前。这将使您确切地知道应该向谁投诉(或者您需要停止哪个集会)。
Microsoft 报告此问题已在 .NET Framework September 2017 Security and Quality Rollup
中解决
引用:
CLR 程序集元数据崩溃 reader。 [367294]
- 也在 ASP.NET Forums #2106799
报道
- 也在
报道
- 也在 Connect #3111237
报道
我最近刚开始收到 ExecutionEngineException (80131506),当时我 运行 我们任何现有的 ASP.NET 本地应用程序在 .aspx 页面中带有 asp:ScriptManger 标记。
错误信息是:
Application: w3wp.exe
Framework Version: v4.0.30319
Description: The process was terminated due to an internal error in the .NET Runtime at IP 00007FFB75209A99 (00007FFB75170000) with exit code 80131506.
这个问题是在我获得 Windows 10 周年更新后开始出现的,所以我认为这些可能是相关的,但这只是一个猜测。
这是我目前的发现:
- 当 运行 在我的机器上本地运行时,我们所有现有的具有 ScriptManagers 的应用程序都会发生这种情况。其中许多我已经一年多没有更新了。并且在其他非 Windows 10 周年纪念机器上仍能正常工作。我们没有其他具有最新 Windows 10 个更新的开发人员来测试它。
- 我收到了所有最新的 Windows 更新
- 我尝试了以前版本的应用程序(以防万一)
- 我先进行了修复,然后卸载并重新安装了 Visual Studio 2013
- 我在 Windows 功能 中关闭并重新打开了 IIS 和 .NET
- 我清除了 asp.net 个临时文件
- DebugDiag 输出显示如下:
.NET Call Stack
[[HelperMethodFrame_2OBJ] (System.Reflection.PseudoCustomAttribute._GetSecurityAttributes)] System.Reflection.PseudoCustomAttribute._GetSecurityAttributes(System.Reflection.RuntimeModule, Int32, Boolean, System.Object[]ByRef) mscorlib_ni!System.Reflection.PseudoCustomAttribute.GetCustomAttributes(System.Reflection.RuntimeAssembly, System.RuntimeType, Boolean, Int32 ByRef)+13b mscorlib_ni!System.Reflection.CustomAttribute.GetCustomAttributes(System.Reflection.RuntimeAssembly, System.RuntimeType)+26 mscorlib_ni!System.Reflection.RuntimeAssembly.GetCustomAttributes(Boolean)+26 System_Web_Extensions_ni!System.Web.UI.AssemblyCache.SafeGetAjaxFrameworkAssemblyAttribute(System.Reflection.ICustomAttributeProvider)+1f System_Web_Extensions_ni!System.Web.UI.AssemblyCache.GetAjaxFrameworkAssemblyAttribute(System.Reflection.Assembly)+3e System_Web_Extensions_ni!System.Web.UI.ScriptManager.get_DefaultAjaxFrameworkAssembly()+181 System_Web_Extensions_ni!System.Web.UI.ScriptManager..ctor()+1c ASP.includes_donorsearch_ascx.__BuildControlScriptManager1()+4e ASP.includes_donorsearch_ascx.__BuildControlTree(ASP.includes_donorsearch_ascx)+72 ASP.includes_donorsearch_ascx.FrameworkInitialize()+3c System_Web_ni!System.Web.UI.UserControl.InitializeAsUserControlInternal()+25 System_Web_ni!System.Web.UI.UserControl.InitializeAsUserControl(System.Web.UI.Page)+14 ASP.donorsearch_aspx.__BuildControlDonorSearch1()+87 ASP.donorsearch_aspx.__BuildControlcontentDefault(System.Web.UI.Control)+68 System_Web_ni!System.Web.UI.CompiledTemplateBuilder.InstantiateIn(System.Web.UI.Control)+10 System_Web_ni!System.Web.UI.MasterPage.InstantiateInContentPlaceHolder(System.Web.UI.Control, System.Web.UI.ITemplate)+59 ASP._primary_master.__BuildControlprimaryContent()+114 ASP._primary_master.__BuildControlform3()+120 ASP._primary_master.__BuildControlTree(ASP._primary_master)+ef ASP._primary_master.FrameworkInitialize()+3c System_Web_ni!System.Web.UI.UserControl.InitializeAsUserControlInternal()+25 System_Web_ni!System.Web.UI.MasterPage.CreateMaster(System.Web.UI.TemplateControl, System.Web.HttpContext, System.Web.VirtualPath, System.Collections.IDictionary)+2a1 System_Web_ni!System.Web.UI.Page.get_Master()+38 System_Web_ni!System.Web.UI.Page.ApplyMasterPage()+f System_Web_ni!System.Web.UI.Page.PerformPreInit()+34 System_Web_ni!System.Web.UI.Page.ProcessRequestMain(Boolean, Boolean)+129 System_Web_ni!System.Web.UI.Page.ProcessRequest(Boolean, Boolean)+85 System_Web_ni!System.Web.UI.Page.ProcessRequest()+49 System_Web_ni!System.Web.UI.Page.ProcessRequestWithNoAssert(System.Web.HttpContext)+17 System_Web_ni!System.Web.UI.Page.ProcessRequest(System.Web.HttpContext)+3b ASP.donorsearch_aspx.ProcessRequest(System.Web.HttpContext)+26 System_Web_ni!System.Web.HttpApplication+CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute()+bd System_Web_ni!System.Web.HttpApplication.ExecuteStep(IExecutionStep, Boolean ByRef)+46 System_Web_ni!System.Web.HttpApplication+PipelineStepManager.ResumeSteps(System.Exception)+427 System_Web_ni!System.Web.HttpApplication.BeginProcessRequestNotification(System.Web.HttpContext, System.AsyncCallback)+60 System_Web_ni!System.Web.HttpRuntime.ProcessRequestNotificationPrivate(System.Web.Hosting.IIS7WorkerRequest, System.Web.HttpContext)+bb System_Web_ni!System.Web.Hosting.PipelineRuntime.ProcessRequestNotificationHelper(IntPtr, IntPtr, IntPtr, Int32)+32f [[InlinedCallFrame]] System_Web_ni!System.Web.Hosting.PipelineRuntime.ProcessRequestNotification(IntPtr, IntPtr, IntPtr, Int32)+1f System_Web_ni!DomainNeutralILStubClass.IL_STUB_PInvoke(IntPtr, System.Web.RequestNotificationStatus ByRef)+3d [[InlinedCallFrame]] System_Web_ni!System.Web.Hosting.PipelineRuntime.ProcessRequestNotificationHelper(IntPtr, IntPtr, IntPtr, Int32)+4d2 [[InlinedCallFrame]] System_Web_ni!System.Web.Hosting.PipelineRuntime.ProcessRequestNotification(IntPtr, IntPtr, IntPtr, Int32)+1f [[ContextTransitionFrame]]
似乎错误发生在构建控制 ScriptManager 期间的 Ajax 回调中。
ASP.includes_donorsearch_ascx.__BuildControlScriptManager1
- 我还注意到,当我尝试使用 JetBrains dotTrace 跟踪问题时,错误并未发生。 dotTrace 关闭 IIS 服务并直接 运行s 它。
我目前的猜测是我的机器出现问题或者 Windows 10 周年纪念版引入了这个问题。
有人以前见过这个问题吗?虽然错误总是出现在 ScriptManger 中,因为这个错误与 GC 有关,但我想知道问题是否出在其他地方,只是出现在这里。
我知道这没什么好继续的,但我认为其他人可能遇到了同样的问题?
谢谢。 约瑟夫
因此,我将 Windows 10 周年更新回滚到版本 1511,Web 应用程序再次开始正常工作。
除了回滚到以前的 Windows 版本之外,您是否找到了解决此问题的方法?我们看到了完全相同的行为,并且我们已经在多台机器上确认它在更新到周年更新后出现。我在这里记录了一个错误:https://connect.microsoft.com/VisualStudio/feedback/details/3111237/access-violation-exception-in-blobtoattributeset-instruction-in-clr-dll
更新: 我能够使用调试器进行探索(通过设置 VS 调试器以启用 .NET Framework 调试并下载所有必要的符号)以达到断点在调用 mscorlib 的 System.Reflection.RuntimeAssembly.GetCustomAttributes() 的异常堆栈跟踪中引用的代码中——对我们来说,它是 Owin.Loader.DefaultLoader.SearchForStartupAttribute()。
最终,我能够准确地 找出正在处理哪个程序集并导致抛出异常。对我们来说,它是 Sax.Barcodes.ASP.dll,一个不再主动维护的 古老的 程序集。幸运的是,我们将能够从我们的网站代码中删除对该程序集的所有引用(我们可能早就应该这样做了)。
我建议您也在调试器中解决这个问题,并准确查明是哪个程序集导致 mscorlib 停滞不前。这将使您确切地知道应该向谁投诉(或者您需要停止哪个集会)。
Microsoft 报告此问题已在 .NET Framework September 2017 Security and Quality Rollup
中解决引用:
CLR 程序集元数据崩溃 reader。 [367294]
- 也在 ASP.NET Forums #2106799 报道
- 也在
- 也在 Connect #3111237 报道