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

.NET 4.6.2应用部署后Application Insights仅本地捕获HTTP依赖问题

.NET 4.6.2应用部署后Application Insights无法捕获HTTP依赖项的排查方案
  • 核对SDK版本一致性:确认部署环境使用的Application Insights SDK版本和本地调试完全一致,旧版本可能存在环境特定的HTTP依赖捕获bug。建议使用适配.NET Framework 4.6.2的稳定版SDK(如Microsoft.ApplicationInsights.Web 2.21.0及以上),避免版本差异引发兼容性问题。

  • 验证自动捕获配置:

    • 检查web.config中是否启用了HTTP依赖追踪的必要模块,确认存在如下配置节点:
      <system.webServer>
        <modules>
          <add name="TelemetryCorrelationHttpModule" type="Microsoft.AspNet.TelemetryCorrelation.TelemetryCorrelationHttpModule, Microsoft.AspNet.TelemetryCorrelation" preCondition="managedHandler" />
          <add name="ApplicationInsightsWebTracking" type="Microsoft.ApplicationInsights.Web.ApplicationInsightsHttpModule, Microsoft.ApplicationInsights.Web" preCondition="managedHandler" />
        </modules>
      </system.webServer>
      
    • 打开ApplicationInsights.config,确认DependencyTrackingTelemetryModule未被禁用,且未添加HTTP依赖的排除规则:
      <Add Type="Microsoft.ApplicationInsights.DependencyCollector.DependencyTrackingTelemetryModule, Microsoft.AI.DependencyCollector">
        <Enabled>True</Enabled>
        <!-- 确保无针对HTTP类型的过滤配置 -->
      </Add>
      
  • 排查环境网络与代理限制:部署环境的代理服务器可能干扰HTTP请求的追踪逻辑,导致依赖无法被识别。检查应用服务器的代理设置,确认应用进程有权限访问外部服务,且代理未修改或拦截Request-Id等用于链路关联的请求头。

  • 手动测试依赖捕获:在代码中添加手动追踪HTTP依赖的逻辑,验证是否能被正常记录,以此排除自动检测模块的问题:

    var httpClient = new HttpClient();
    var operation = TelemetryConfiguration.Active.TelemetryClient.StartOperation<DependencyTelemetry>("HTTP GET", "https://目标接口地址");
    try
    {
        var response = await httpClient.GetAsync("https://目标接口地址");
        operation.Telemetry.Success = response.IsSuccessStatusCode;
        operation.Telemetry.ResultCode = ((int)response.StatusCode).ToString();
    }
    catch (Exception ex)
    {
        operation.Telemetry.Success = false;
        operation.Telemetry.ResultCode = ex.Message;
        throw;
    }
    finally
    {
        TelemetryConfiguration.Active.TelemetryClient.StopOperation(operation);
    }
    

    如果手动追踪能正常显示,说明自动检测模块存在环境适配问题,需重点排查自动配置环节。

  • 检查应用池配置:确认部署环境的应用池运行身份具备足够权限加载Application Insights检测模块,避免因权限不足导致模块初始化失败。同时确保应用池设置为集成模式(经典模式下部分HTTP模块无法正常工作)。

  • 启用调试日志排查:在web.config中添加如下配置,收集Application Insights模块的详细运行日志,排查是否存在隐藏的初始化错误或请求过滤逻辑:

    <system.diagnostics>
      <trace autoflush="true" />
      <sources>
        <source name="Microsoft.ApplicationInsights" switchValue="Verbose">
          <listeners>
            <add name="aiTraceListener" type="Microsoft.ApplicationInsights.TraceListener.ApplicationInsightsTraceListener, Microsoft.ApplicationInsights.TraceListener" />
          </listeners>
        </source>
      </sources>
    </system.diagnostics>
    

    之后在Application Insights日志中搜索DependencyTrackingTelemetryModule相关条目,查看是否有异常或过滤记录。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.14 04:01:05