我正在将 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/