如果你的Application Insight无法记录到异常详细信息,你可以尝试以下方法解决:
public static void Register(HttpConfiguration config)
{
config.Services.Replace(typeof(IExceptionHandler), new CustomExceptionHandler());
}
public class CustomExceptionHandler : ExceptionHandler
{
public override void Handle(ExceptionHandlerContext context)
{
var ai = new TelemetryClient();
ai.TrackException(context.Exception);
}
}
这个代码片段会在应用程序发生异常时将异常信息发送到Application Insight。
public class MvcApplication : System.Web.HttpApplication
{
protected void Application_Start()
{
var config = TelemetryConfiguration.Active;
config.TelemetryInitializers.Add(new ExceptionLoggingTelemetryInitializer());
}
}
public class ExceptionLoggingTelemetryInitializer : ITelemetryInitializer
{
public void Initialize(ITelemetry telemetry)
{
var exceptionTelemetry = telemetry as ExceptionTelemetry;
if (exceptionTelemetry != null)
{
exceptionTelemetry.IncludeExceptionDetails = true;
}
}
}
这个代码片段会启用异常详细信息的记录,从而使Application Insight能够正确地记录异常信息。
上一篇:applicationhost.config中的http谓词RequestFiltering值可以在我的网站中重写吗?
下一篇:ApplicationInsightDataClient的GetCustomEventWithHttpMessageAsync方法没有加载自定义维度。