.NET 4.0 Web プロジェクトがあり、Microsoft.Bcl.Async を使用して async/await 機能をサポートしています。でスローされる NullReferenceException が原因で、運用環境の IIS ワーカー プロセスが継続的にクラッシュすることに気付きましたSystem.Runtime.CompilerServices.AsyncServices.<ThrowAsync>b__1()
。例外がコードの別の場所でスローされ、AsyncServices.ThrowAsync()
メソッドで再スローされるようです。残念ながら、例外の詳細 (元のスタック トレースを含む) は失われているため、例外が最初にスローされた場所はわかりません。さらに、AppDomain.CurrentDomain.UnhandledException および TaskScheduler.UnobservedTaskException イベントを使用してこの例外をキャッチしようとしましたが、これらのイベントは発生しません。
私が持っているすべてのエラーの詳細があります(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()
私のコードには、この例外をスローし、出力なしでプロセスがクラッシュする可能性のある明らかな場所はありません。
これをデバッグするにはどうすればよいですか? この例外の原因を見つける方法はありますか?