Как регистрировать исключения в основном приложении asp.net с помощью ApplicationInsights 2.x при использовании DeveloperExceptionPage
Есть ли документация, касающаяся ApplicationInsights 2.x и ядра asp.net?
Я нашел это: https://docs.microsoft.com/en-us/azure/application-insights/app-insights-asp-net-exceptions, но выглядит устаревшим.
Он использует HandleErrorAttribute, но это класс.NET Framework, а не ядро .net.
1 ответ
В ASP.NET Core вы можете обрабатывать исключения, реализуя интерфейс IExceptionFilter. Код ниже для вашей справки.
public class GlobalExceptionFilter : Microsoft.AspNetCore.Mvc.Filters.IExceptionFilter
{
public void OnException(ExceptionContext context)
{
var telemetry = new TelemetryClient();
var properties = new Dictionary<string, string> { { "custom-property1", "property1-value" } };
telemetry.TrackException(context.Exception, properties);
}
}
После определения фильтра вы можете зарегистрировать его при добавлении службы MVC в методе ConfigureServices.
services.AddMvc().AddMvcOptions(opt=> { opt.Filters.Add(new GlobalExceptionFilter()); });