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

Chr*_*ris 2 .net sqlclient azure-application-insights

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

我们现在正在从 System.Data.SqlClient 迁移到Microsoft.Data.SqlClient包,因此我们还可以进行高级 SQL 跟踪以查看遥测中的完整查询文本。我们更新了 ApplicationInsights.config 文件以将EnableSqlCommandTextInstrumentation设置为true

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

有什么问题吗?

Chr*_*ris 5

问题是Application Insights SDKMicrosoft.Data.SqlClient版本的组合。

Microsoft.Data.SqlClient 2.0 版更改了 EventSource 跟踪的命名,从而有效地破坏了 AI SDK 2.15 及之前版本(在撰写本文时)对 SQL 依赖项跟踪的支持。

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

据报道,AI SDK 存在一些问题来解决此问题(特别是2032 年),这有望意味着此问题在未来得到解决。

我希望这可以帮助那些像我一样拔头发的人:)