MVC全局事件处理程序未捕获到异常

时间:2019-02-19 20:30:45

标签: c# .net error-handling asp.net-mvc-5 cil

我遇到了NullReferenceException,该异常未由MVC全局错误事件处理程序(Application_Error)处理。这仅在生产中发生。由于快速故障保护IIS设置,IIS应用程序池在五次失败后关闭。池中只有一个应用程序。

下面是.wer(Windows错误报告)文件的摘要。它包含有关未处理的异常的信息。我的理解是Sig [6]包含重要的价值。我使用值e3(十进制为227)在IL代码中找到方法签名。

EXE File name:                  Sig[0].Value=w3wp.exe 
EXE File Assembly Version:      Sig[1].Value=7.5.7601.17514 
EXE File Stamp:                 Sig[2].Value=4ce7afa2 
EXE File Full Assembly Version: Sig[3].Value=System.Web 
Faulting Assembly Version:      Sig[4].Value=4.7.3282.0 
Faulting Assembly Timestamp:    Sig[5].Value=5bd8e3e7 
Faulting Assembly Method Def:   Sig[6].Value=e3
Faulting Method IL Offset:      Sig[7].Value=25
Exception Type:                 Sig[8].Value=System.NullReferenceException

Sig [6]的值转换为令牌06000 227 。从{3}转换为06000227的说明可以在here中找到。

.method /*06000227*/ private hidebysig newslot specialname virtual final 
        instance bool  System.Web.HttpApplication.IExecutionStep.get_IsCancellable() cil managed
{
  .override System.Web.HttpApplication/*0200003A*//IExecutionStep/*0200003F*/::get_IsCancellable /*0200003F::0600020B*/ 
  // Code size       2 (0x2)
  .maxstack  8
  IL_0000:  ldc.i4.0
  IL_0001:  ret
} // end of method MapHandlerExecutionStep::System.Web.HttpApplication.IExecutionStep.get_IsCancellable

提供我正确的翻译后,为什么IsCancellable会引发/引起NullReferenceException吗?我还有更多可以追踪调用堆栈的信息吗?错误来自System.Web的事实使我感到困惑。

global.asax中使用的其他事件处理程序:

  • Application_PreRequestHandlerExecute
  • Application_BeginRequest
  • Application_AuthenticateRequest

如果您需要更多详细信息,请告诉我。

谢谢您的帮助。

0 个答案:

没有答案
相关问题