You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在.NET Framework类库中实现Application Insights教程5、6步的等效功能?

在.NET Framework类库中配置Application Insights的方法

核心逻辑说明

教程里针对MVC项目的步骤5(添加异常筛选器)、步骤6(配置HTTP模块)是Web项目专属的,类库作为非Web项目不需要这些操作,取而代之的是手动初始化TelemetryClient并遵循依赖注入的最佳实践,以此实现和MVC项目一致的监控功能。

修正你的代码问题

你当前的类库代码存在关键问题:构造函数接收了TelemetryClient参数,但却重新实例化了新对象,没有复用传入的实例——这会导致配置不统一,比如主项目的连接字符串、Instrumentation Key无法传递给类库实例。修正后的类库代码如下:

private readonly TelemetryClient _telClient;

// 直接复用传入的TelemetryClient实例,而非重新创建
public SomeClass(TelemetryClient telClient)
{
    _telClient = telClient ?? throw new ArgumentNullException(nameof(telClient));
}

public void SomeMethod()
{
    // 追踪自定义异常
    _telClient.TrackException(new Exception("Hello World"));
}

类库配置的关键要点

  1. 安装NuGet包:在类库项目中安装Microsoft.ApplicationInsights基础包;如果需要追踪日志、依赖等扩展功能,可按需安装Microsoft.ApplicationInsights.TraceListener等配套包。
  2. 共享主项目配置:类库无需重复配置Instrumentation Key,只要主项目(你的MVC应用)已经配置好Application Insights,通过依赖注入传入的TelemetryClient会自动继承主项目的配置。
  3. 独立运行的初始化(可选):如果类库需要脱离主项目单独运行,可在类库内手动初始化配置:
TelemetryConfiguration.Active.InstrumentationKey = "你的Instrumentation Key";
var telClient = new TelemetryClient(TelemetryConfiguration.Active);

MVC主项目的调用修正

你当前的MVC代码已经传入了TelemetryClient实例,但类库之前没有正确使用。修正后,类库会复用主项目的配置,确保监控数据统一归集:

if (filterContext != null && filterContext.HttpContext != null && filterContext.Exception != null)
{
    if (filterContext.HttpContext.IsCustomErrorEnabled)
    {   
        var ai = new TelemetryClient();
        ai.TrackException(filterContext.Exception);
        // 传入已配置好的实例给类库
        SomeClass sc = new SomeClass(ai);
        sc.SomeMethod();
    } 
}

对应MVC步骤5、6的类库替代方案

教程中的步骤5、6是自动捕获Web请求的异常和请求数据,类库没有HTTP上下文,需通过手动调用TelemetryClient的追踪方法实现类似效果:

  • 替代步骤5(异常捕获):在类库的异常处理逻辑中调用_telClient.TrackException()记录异常
  • 替代步骤6(HTTP请求追踪):如果类库涉及外部API调用,可使用_telClient.TrackDependency()追踪依赖调用;无HTTP场景则无需对应逻辑

内容的提问来源于stack exchange,提问作者Computer

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.01 00:04:02