Исключение не перехвачено глобальным обработчиком событий MVC - PullRequest
0 голосов
/ 19 февраля 2019

Я обнаружил исключение NullReferenceException, которое не обрабатывается обработчиком событий глобальной ошибки MVC (Application_Error).Это происходит только в производстве.Пул приложений IIS завершает работу после пяти сбоев из-за настроек защиты от быстрой защиты IIS.В пуле есть только одно приложение.

Ниже приведен фрагмент файла .wer (Windows Error Reporting).Содержит информацию о необработанном исключении.Насколько я понимаю, 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 .Инструкции по переводу с e3 на 06000227 можно найти здесь .

.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

Пожалуйста, дайте мне знать, если вам нужна дополнительная информация.

Спасибо за вашу помощь.

...