Application Insights(AI)を使用して再生していて、アプリケーションでスローされた例外をログに記録して表示できるかどうかを試してみます。Application InsightのMVC例外がスタックトレースを隠す
私はthis guideを追跡し、テスト目的でAzureの新しいAIリソースにリンクされた新しいMVCプロジェクトをセットアップしました。すべてがかなりうまくいく。
私はDiagnose failures & exceptionsに次のガイドを読んだ後、私はNullReferenceException
をトリガてる新しいアクションメソッドを作成しました。私はこの遠隔測定データがどのようにAIに送られているか本当に好きです。アプリケーションをデバッグするとき、Visual StudioでApplication Insights Searchウィンドウ内にスローされた例外を表示できます。それは私に、次のスタックトレースを与える:
System.NullReferenceException: Object reference not set to an instance of an object.
at WebApplicationInsights.Controllers.HomeController.Error (HomeController.cs:33) (WebApplicationInsights, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null)
at lambda_method (Anonymously Hosted DynamicMethods Assembly, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null)
at System.Web.Mvc.ActionMethodDispatcher.Execute (System.Web.Mvc, Version=5.2.3.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35)
.
.
at System.Web.HttpApplication.ExecuteStep (System.Web, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a)
あなたが見ることができるように、例外がにHomeControllerから上げています。
Azureに公開した後、私はライブのウェブサイトを訪問して、この例外を再び発生させました。
System.NullReferenceException:
at lambda_method (Anonymously Hosted DynamicMethods Assembly, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null)
at System.Web.Mvc.ActionMethodDispatcher.Execute (System.Web.Mvc, Version=5.2.3.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35)
.
.
at System.Web.HttpApplication.ExecuteStep (System.Web, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a)
あなたはスタックトレースの最後のコールが欠落していることを観察することができます:Azureのポータルで例外を調べる私はこのスタックトレースを取得しています。どうして?
ローカルでデバッグ中にスローされた例外は、Azureポータルにも存在しますが、これはではなく、最後の呼び出しがありません。です。このスクリーンショットを参照してください。
追加質問:何をAnonymously Hosted DynamicMethods Assembly
は、スタックトレースで表すと、なぜそれがそこにあるのでしょうか?