Mam projekt sieci Web .NET 4.0 i używam Microsoft.Bcl.Async do obsługi funkcji async/await. Zauważyłem, że w środowisku produkcyjnym proces roboczy usług IIS nieustannie zawiesza się z powodu wyjątku NullReferenceException, który jest zgłaszany pod adresem System.Runtime.CompilerServices.AsyncServices.<ThrowAsync>b__1()
. Wygląda na to, że wyjątek został zgłoszony w innym miejscu w moim kodzie i został ponownie zgłoszony przy użyciu metody AsyncServices.ThrowAsync()
. Niestety, wszystkie szczegóły wyjątku (w tym oryginalny ślad stosu) są tracone, więc nie wiem, gdzie pierwotnie został zgłoszony wyjątek. Co więcej, próbowałem złapać ten wyjątek za pomocą zdarzeń AppDomain.CurrentDomain.UnhandledException i TaskScheduler.UnobservedTaskException, ale zdarzenia te nigdy nie są uruchamiane.NullReferenceException w System.Runtime.CompilerServices.AsyncServices. <ThrowAsync> b__1()
Są wszystkie szczegóły błędu mam (z Eventlog):
Exception: System.NullReferenceException
Message: Object reference not set to an instance of an object.
StackTrace: at System.Runtime.CompilerServices.AsyncServices.<ThrowAsync>b__1(Object state)
at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
at System.Threading.QueueUserWorkItemCallback.System.Threading.IThreadPoolWorkItem.ExecuteWorkItem()
at System.Threading.ThreadPoolWorkQueue.Dispatch()
Brak widocznych miejscach w moim kodu, który może rzucić wyjątek ten proces i wywala bez wyjścia.
Jak mogę to debugować? Czy są jakieś sposoby na znalezienie źródła tego wyjątku?
Może się to zdarzyć, jeśli "poczekasz" null "Zadanie". – SLaks
Czy ten wyjątek może spowodować awarię IIS 8.5? – dizel3d