我们在.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依赖项的代码。
怎么了?
问题是Application Insights SDK和Microsoft.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年(,这有望意味着这一问题在未来得到解决。
我希望这能帮助任何像我一样拔头发的人:(