Application Insights记录SQL依赖时无SQL命令文本该如何配置
解决Azure .NET5 App Service Application Insights不显示SQL命令文本问题
需补充/检查的配置项:
- 首先确认配置文件是否正确:.NET5默认读取的是
appsettings.json而非.NET Framework时代的appSettings.config,如果你确实使用config格式存储配置,需确保已手动注册了对应配置提供器,否则配置不会生效。 - 确认依赖包版本符合要求:
Microsoft.ApplicationInsights.AspNetCore版本 ≥ 2.15.0- 如使用EF Core操作数据库,
Microsoft.EntityFrameworkCore版本 ≥ 5.0.0 - 如直接使用SqlClient,
Microsoft.Data.SqlClient版本 ≥ 2.1.0
- 补充EF Core敏感日志配置(仅使用EF Core时需要):
EF Core默认会屏蔽SQL命令中的敏感信息,不会将完整命令文本传递给Application Insights,需在注册DbContext时开启敏感数据日志:services.AddDbContext<你的DbContext类名>(options => options.UseSqlServer(Configuration.GetConnectionString("你的连接字符串名")) .EnableSensitiveDataLogging()); - 确认服务注册时加载了配置:
在Startup.cs的ConfigureServices方法中,注册Application Insights服务时需传入Configuration实例,确保配置文件中的设置被正确读取:services.AddApplicationInsightsTelemetry(Configuration); - 开启Azure门户侧的SQL查询收集开关:
- 进入你绑定的Application Insights资源
- 左侧菜单找到「使用情况和预估成本」,点击「数据收集」
- 勾选「启用 SQL 查询收集」选项后保存
- 临时关闭采样测试:
你当前配置开启了采样,可能存在SQL请求被过滤未上报的情况,可先将sampling下的isEnabled设为false,验证是否能正常采集到SQL命令文本。
查看路径说明
采集到的SQL命令文本不会直接显示在依赖项的名称字段中,需要点开对应SQL依赖项的详情,在「自定义维度」的CommandText属性中查看。
内容的提问来源于stack exchange,提问作者frosty
相关产品推荐
相关产品推荐

