【问题标题】:Application Insights: How to track crashes in Desktop (WPF) applications?Application Insights:如何跟踪桌面 (WPF) 应用程序中的崩溃?
【发布时间】:2015-06-25 11:41:08
【问题描述】:

我正在将 Application Insights 用于 WPF 应用程序。正在跟踪 PageViews 和自定义事件。

现在我想跟踪崩溃。我的想法是:

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

当发生未处理的异常但未在 Application Insights 门户中显示为“崩溃”时,将调用该代码。我在某处读到,当应用程序没有真正崩溃时,TrackException 不算作“崩溃”。

桌面(例如 WPF)应用程序必须使用 Application Insights 的低级 API。我还没有找到一种方法来告诉 Application Insights WPF 应用程序正在崩溃。

我该怎么做?

【问题讨论】:

    标签: c# wpf desktop azure-application-insights


    【解决方案1】:

    对于 WPF 应用程序,没有对捕获崩溃的固有支持。您的声明“当发生未处理的异常时调用代码,但它在 Application Insights 门户中未显示为“崩溃”。我在某处读到,当应用程序没有真正崩溃时,TrackException 不算作“崩溃”。” - 是真的。
    Here 是描述它的文档。

    如果您仍希望将正在处理的异常视为崩溃,则可以将跟踪的异常视为未处理的一种方法。

    这里是-

            var exceptionTelemetry = new Microsoft.ApplicationInsights.DataContracts.ExceptionTelemetry(new Exception());
            exceptionTelemetry.HandledAt = Microsoft.ApplicationInsights.DataContracts.ExceptionHandledAt.Unhandled;
            telemetryClient.TrackException(exceptionTelemetry);
    

    【讨论】:

    • ExceptionTelemetry.ExceptionHandledAt 现已过时。他们说“使用自定义属性来报告异常处理层”,但我不确定要设置什么样的自定义属性才能让它算作崩溃
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-12-07
    相关资源
    最近更新 更多