Application Insights SDK SQL 依赖项跟踪不适用于 Microsoft.Data.SqlClient 2.0

Application Insights SDK SQL Dependency Tracking is not working with Microsoft.Data.SqlClient 2.0

我们在 .NET Framework 4.7.2 应用程序中使用 Application Insights SDK (v2.14),并且能够成功跟踪 SQL 依赖项(尽管没有查询文本)。

我们现在正在迁移到遥测中的 Microsoft.Data.SqlClient package from System.Data.SqlClient so we can also do Advanced SQL tracking to see the full query text。我们更新了 ApplicationInsights.config 文件以将 EnableSqlCommandTextInstrumentation 设置为 true.

但是,在安装最新的 Microsoft.Data.SqlClient 软件包(撰写本文时为 2.01)之后,我们不再使用客户端跟踪代码的任何 SQL 依赖项。

有什么问题?

问题是 Application Insights SDK and Microsoft.Data.SqlClient.

的版本组合

Microsoft.Data.SqlClientchanged the naming for EventSource tracing 的 2.0 版,这样做有效地破坏了 AI SDK 中对 SQL 依赖跟踪的支持,最高版本为 2.15(在撰写本文时) .

解决方法是将 Microsoft.Data.SqlClient 降级到具有旧 EventSource 命名的版本 1.1.3。这将恢复 SQL 依赖跟踪(如果添加 EnableSqlCommandTextInstrumentation 标志,则显示 SQL 查询文本)。

有针对 AI SDK 的问题报告来修复此问题(2032 特别是)这将有望在未来得到修复。

我希望这对像我一样拔头发的人有帮助:)