我遇到了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中使用的其他事件处理程序:
如果您需要更多详细信息,请告诉我。
谢谢您的帮助。