Ho un progetto Web .NET 4.0 e utilizzo Microsoft.Bcl.Async per supportare la funzione asincrona/attesa. Ho notato che in ambiente di produzione il processo di lavoro IIS si interrompe continuamente a causa di NullReferenceException che viene lanciato a System.Runtime.CompilerServices.AsyncServices.<ThrowAsync>b__1()
. Sembra che l'eccezione sia stata lanciata in un altro posto nel mio codice ed è stata rimandata al metodo AsyncServices.ThrowAsync()
. Sfortunatamente tutti i dettagli delle eccezioni (inclusa la traccia dello stack originale) vanno persi, quindi non so dove sia stata originariamente lanciata l'eccezione. Inoltre, ho cercato di rilevare questa eccezione utilizzando gli eventi AppDomain.CurrentDomain.UnhandledException e TaskScheduler.UnobservedTaskException ma questi eventi non vengono mai attivati.NullReferenceException in System.Runtime.CompilerServices.AsyncServices. <ThrowAsync> b__1()
Ci sono tutti i dettagli di errore che ho (da 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()
ci sono posti evidenti nel mio codice che potrebbe gettare questo di eccezione e di processo si blocca, senza alcun output.
Come si esegue il debug di questo? Ci sono modi per trovare la fonte di questa eccezione?
Questo potrebbe accadere se si "attende" un "task" nullo. – SLaks
Questa eccezione può causare l'arresto di IIS 8.5? – dizel3d