2

WPF アプリケーションに Application Insights を使用しています。PageViews とカスタム イベントの追跡が機能しています。

ここで、クラッシュを追跡したいと思います。私の考えは次のとおりでした。

private void AppDispatcherUnhandledException(object sender, 
    DispatcherUnhandledExceptionEventArgs e)
{
    telemetryClient.TrackException(e.Exception);
    telemetryClient.Flush();
}

このコードは、未処理の例外が発生したときに呼び出されますが、Application Insights ポータルでは "クラッシュ" として表示されません。アプリケーションが実際にクラッシュしない場合、TrackException は「クラッシュ」としてカウントされないことをどこかで読みました。

デスクトップ (WPF など) アプリケーションは、Application Insights の低レベル API を使用する必要があります。WPF アプリケーションがクラッシュしていることを Application Insights に伝える方法が見つかりません。

どうすればそれができますか?

4

1 に答える 1

2

WPF アプリケーションの場合、クラッシュをキャプチャするための固有のサポートはありません。あなたの声明「未処理の例外が発生したときにコードが呼び出されますが、Application Insights ポータルでは「クラッシュ」として表示されません。アプリケーションが実際にクラッシュしない場合、TrackException は「クラッシュ」としてカウントされないことをどこかで読みました。」- 本当です。
ここにそれを説明するドキュメントがあります。

処理中の例外を引き続きクラッシュとして扱いたい場合、それを行う 1 つの方法は、追跡された例外を未処理として処理することです。

これが方法です-

        var exceptionTelemetry = new Microsoft.ApplicationInsights.DataContracts.ExceptionTelemetry(new Exception());
        exceptionTelemetry.HandledAt = Microsoft.ApplicationInsights.DataContracts.ExceptionHandledAt.Unhandled;
        telemetryClient.TrackException(exceptionTelemetry);
于 2015-06-25T23:02:57.930 に答える