6

.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()

私のコードには、この例外をスローし、出力なしでプロセスがクラッシュする可能性のある明らかな場所はありません。

これをデバッグするにはどうすればよいですか? この例外の原因を見つける方法はありますか?

4

1 に答える 1

3

IISでは使用できませんまったくサポートされていませMicrosoft.Bcl.Asyncん。ごめん。

参照されたブログ投稿から要約すると、 async / await の動作はaspnet:UseTaskFriendlySynchronizationContext、アプリの設定が に設定されているtrueか、httpRuntime.targetFramework属性が に設定されていない限り、 ASP.NET では定義されていません4.5

これらのオプションは、ASP.NET 4 ランタイムには影響しません。

于 2013-10-16T14:55:39.683 に答える