【问题标题】:How to log exceptions in asp.net core app using ApplicationInsights 2.x when DeveloperExceptionPage is used使用 DeveloperExceptionPage 时如何使用 ApplicationInsights 2.x 在 asp.net 核心应用程序中记录异常
【发布时间】:2026-02-03 19:15:01
【问题描述】:

是否有任何关于 ApplicationInsights 2.x 和 asp.net core 的文档?

我找到了这个:https://docs.microsoft.com/en-us/azure/application-insights/app-insights-asp-net-exceptions,但看起来已经过时了。

它使用“HandleErrorAttribute”,但它是 .NET Framework 的类,而不是 .net 核心。

【问题讨论】:

    标签: .net azure asp.net-core azure-application-insights


    【解决方案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);
        }
    }
    

    定义过滤器后,可以在ConfigureServices方法中添加MVC服务时注册。

    services.AddMvc().AddMvcOptions(opt=> { opt.Filters.Add(new GlobalExceptionFilter()); });
    

    【讨论】:

    • 有什么更新吗?如果我的回复可以帮助您解决问题,请将其标记为答案。否则,请提供更多信息以供进一步讨论。