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

Azure App Service生产环境Application Insights初始化异常排查求助

.NET API + Angular SPA 生产环境Application Insights无Trace日志排查问题

我有两个运行.NET API+Angular SPA的Azure App Service(测试、生产环境),部署方式完全一致,仅Angular构建配置因发布环境(Staging/Release)不同存在差异。

我通过以下代码配置日志与Application Insights:

builder.Logging.AddAzureWebAppDiagnostics();
builder.Services.Configure<AzureFileLoggerOptions>(options =>
{
    options.FileName = "azure-diagnostics-";
    options.FileSizeLimit = 50 * 1024;
    options.RetainedFileCountLimit = 5;
});
builder.Logging.AddApplicationInsights(
    config => config.ConnectionString = builder.Configuration.GetConnectionString("APPLICATIONINSIGHTS_CONNECTION_STRING"),
    _ => { }
);

测试环境可正常在Application Insights中查看Trace数据,但生产环境无任何Trace记录。经核对,代码逻辑与核心配置(连接字符串、InstrumentationKey)均一致,不过生产环境缺少测试环境中由App Insights自动生成的多项配置项。已尝试重启App Service但问题未解决,因担心手动添加配置引发冲突,特求助该问题的根源及可排查方向。


测试环境配置

[
  {
    "name": "APPINSIGHTS_INSTRUMENTATIONKEY",
    "value": "<key>",
    "slotSetting": true
  },
  {
    "name": "APPINSIGHTS_PROFILERFEATURE_VERSION",
    "value": "1.0.0",
    "slotSetting": true
  },
  {
    "name": "APPINSIGHTS_SNAPSHOTFEATURE_VERSION",
    "value": "1.0.0",
    "slotSetting": true
  },
  {
    "name": "APPLICATIONINSIGHTS_CONNECTION_STRING",
    "value": "<connection-string>",
    "slotSetting": false
  },
  {
    "name": "APPLICATIONINSIGHTS_ENABLESQLQUERYCOLLECTION",
    "value": "disabled",
    "slotSetting": false
  },
  {
    "name": "ApplicationInsightsAgent_EXTENSION_VERSION",
    "value": "~2",
    "slotSetting": true
  },
  {
    "name": "DiagnosticServices_EXTENSION_VERSION",
    "value": "~3",
    "slotSetting": true
  },
  {
    "name": "DISABLE_APPINSIGHTS_SDK",
    "value": "disabled",
    "slotSetting": false
  },
  {
    "name": "IGNORE_APPINSIGHTS_SDK",
    "value": "disabled",
    "slotSetting": false
  },
  {
    "name": "InstrumentationEngine_EXTENSION_VERSION",
    "value": "disabled",
    "slotSetting": true
  },
  {
    "name": "SnapshotDebugger_EXTENSION_VERSION",
    "value": "disabled",
    "slotSetting": true
  },
  {
    "name": "WEBSITE_APPINSIGHTS_ENCRYPTEDAPIKEY",
    "value": "{\"ApiKey\":\"<api-key>\",\"AppId\":\"<app-id>\"}",
    "slotSetting": false
  },
  {
    "name": "WEBSITE_HTTPLOGGING_RETENTION_DAYS",
    "value": "30",
    "slotSetting": false
  },
  {
    "name": "XDT_MicrosoftApplicationInsights_BaseExtensions",
    "value": "disabled",
    "slotSetting": true
  },
  {
    "name": "XDT_MicrosoftApplicationInsights_Mode",
    "value": "recommended",
    "slotSetting": true
  },
  {
    "name": "XDT_MicrosoftApplicationInsights_PreemptSdk",
    "value": "disabled",
    "slotSetting": true
  }
]

生产环境配置

[
  {
    "name": "APPINSIGHTS_INSTRUMENTATIONKEY",
    "value": "<key>", // 已核对值 -> 正常
    "slotSetting": false
  },
  {
    "name": "APPLICATIONINSIGHTS_CONNECTION_STRING",
    "value": "<connection-string>", // 已核对值 -> 正常
    "slotSetting": false
  },
  {
    "name": "ApplicationInsightsAgent_EXTENSION_VERSION",
    "value": "~2", // 初始值为3,已尝试改为2但无变化
    "slotSetting": false
  },
  {
    "name": "WEBSITE_HTTPLOGGING_RETENTION_DAYS",
    "value": "30",
    "slotSetting": false
  },
  {
    "name": "XDT_MicrosoftApplicationInsights_Mode",
    "value": "Recommended",
    "slotSetting": false
  }
]

可能的根源与排查方向

  • SDK禁用配置缺失:生产环境缺少DISABLE_APPINSIGHTS_SDK和IGNORE_APPINSIGHTS_SDK配置项,默认情况下这两个配置可能被设为enabled,导致SDK发送的日志被拦截。手动添加这两个配置,值设为disabled,重启App Service后验证。
  • 代理与SDK冲突:生产环境XDT_MicrosoftApplicationInsights_Mode设为Recommended,该模式会启用Application Insights Agent(代理),若代理抢占了SDK的日志发送通道,会导致SDK数据无法上传。添加XDT_MicrosoftApplicationInsights_PreemptSdk配置项,值设为disabled,确保SDK优先发送数据。
  • 日志级别过滤:检查生产环境的appsettings.Production.json,确认Logging节点中ApplicationInsights的日志级别是否包含Trace,避免因级别过高过滤掉Trace日志。示例配置:
    "Logging": {
      "ApplicationInsights": {
        "LogLevel": {
          "Default": "Trace"
        }
      }
    }
    
  • 网络出站限制:确认生产环境App Service的出站网络规则,是否允许访问Application Insights的服务端点(如*.applicationinsights.azure.com)。可在Azure门户的App Service网络设置中检查防火墙或虚拟网络配置。
  • 配置值实际生效验证:通过Kudu工具(App Service -> 高级工具 -> 启动)查看生产环境的实际环境变量,确认APPLICATIONINSIGHTS_CONNECTION_STRING等关键配置未被其他配置源(如Key Vault、部署脚本)覆盖。
  • 扩展依赖缺失:测试环境包含DiagnosticServices_EXTENSION_VERSION等扩展配置,虽然这些主要用于Profiler/Snapshot功能,但部分基础日志传输可能依赖该扩展。尝试添加DiagnosticServices_EXTENSION_VERSION并设为~3,重启后观察。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.30 10:42:01