c# - 应用程序洞察 : How to track crashes in Desktop (WPF) applications?

标签 c# wpf desktop azure-application-insights

我正在将 Application Insights 用于 WPF 应用程序。页面浏览量和自定义事件的跟踪正在运行。

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

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

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

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

我怎样才能做到这一点?

最佳答案

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

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

方法如下 -

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

关于c# - 应用程序洞察 : How to track crashes in Desktop (WPF) applications?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31049360/

相关文章:

java - 使用 java swing 的桌面应用程序的兼容性问题

c - 如何使用 c 在桌面上创建文件

c# - 清除 Session_End 上的 Cookie C#

c# - 在 iTextSharp 中操作行和单元格的宽度和高度

WPF:使用模态对话框/InputDialog 查询用户

c# - 文本框中的复制选项

c++ - 如何在C++中将桌面图标设置为大尺寸?

c# - 在 ASP.NET Core 6 中检查事件目录的跨平台方法

c# - ZXing QrCode 渲染器异常与 .Net Core 2.1

c# - MVVM 列表和 ObservableCollection