处理asp:ScriptManager

时间:2016-10-26 21:05:45

标签: asp.net windows-10 scriptmanager

当我在.aspx页面中使用asp:ScriptManger标记在本地运行任何现有的ASP.NET应用程序时,我刚刚开始获得ExecutionEngineException(80131506)。

错误讯息是:

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 Anniversary机器上仍然可以正常工作。我们没有其他开发人员使用最新的Windows 10更新来测试它。
  • 我获得了所有持续的Windows更新
  • 我尝试过以前版本的应用程序(以防万一)
  • 我首先进行了修复,然后卸载并重新安装了Visual Studio 2013
  • 我在Windows功能
  • 中关闭了IIS和.NET
  • 我清除了asp.net临时文件
  • DebugDiag输出显示以下内容:
  

.NET调用堆栈

     

[[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(布尔)+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)+129 System_Web_ni!System.Web.UI.Page.ProcessRequest(布尔值,   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,   布尔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服务并直接运行它。

我目前的猜测是,我的机器上的某些东西搞砸了,或者Windows 10周年纪念版引入了这个问题。

之前有谁见过这个问题?虽然错误总是发生在ScriptManger中,因为这个错误与GC有关,我想知道问题是否存在于其他地方并且只是出现在这里。

我知道这不是很多,但我认为其他人可能遇到同样的问题?

谢谢。 约瑟夫

3 个答案:

答案 0 :(得分:6)

Microsoft报告此问题已在.NET Framework September 2017 Security and Quality Rollup

中解决

<强>引用:

CLR程序集元数据读取器崩溃。 [367294]

答案 1 :(得分:1)

除了回滚到以前的Windows版本之外,您是否能够找到解决此问题的方法?我们看到完全相同的行为,我们已经在多台计算机上确认它在更新到周年纪念更新后出现。我在这里记录了一个错误:https://connect.microsoft.com/VisualStudio/feedback/details/3111237/access-violation-exception-in-blobtoattributeset-instruction-in-clr-dll

UPDATE:我能够使用调试器(通过设置VS调试器以启用.NET Framework调试并下载所有必需的符号)来查看在中引用的代码中的断点。正在调用mscorlib的System.Reflection.RuntimeAssembly.GetCustomAttributes()的异常堆栈跟踪 - 对我们来说,它是Owin.Loader.DefaultLoader.SearchForStartupAttribute()。

最终,我能够找出完全正在处理哪个程序集并导致抛出异常。对我们来说,它是Sax.Barcodes.ASP.dll,一个古代程序集,不再被主动维护。幸运的是,我们将能够从我们的网站代码中删除对此程序集的所有引用(我们很可能早就应该这样做了)。

我建议你在调试器中解决这个问题,并确切地确定哪个程序集导致mscorlib阻止。这样您就可以确切地知道要向谁投诉(或者您需要在日落时使用哪种装配)。

答案 2 :(得分:0)

因此,我将Windows 10周年更新推回到1511版,并且Web应用程序再次正常运行。