问题描述
我们在.NET Framework 4.7.2应用程序中使用了Application Insights SDK(v2.14),并且能够成功跟踪sql依赖项(尽管没有查询文本)。
我们现在正在从System.Data.sqlClient迁移到Microsoft.Data.SqlClient包,因此我们也可以在遥测中执行Advanced SQL tracking to see the full query text。我们已经更新了ApplicationInsights.config文件,将 EnablesqlCommandTextInstrumentation 设置为 true 。
但是,在安装了最新的Microsoft.Data.sqlClient软件包(在撰写本文时为2.01)之后,我们不再使用客户端来跟踪任何sql依赖项。
出什么问题了?
解决方法
问题是Application Insights SDK和Microsoft.Data.SqlClient的版本组合。
Microsoft.Data.SqlClient changed 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),这有望在将来得到解决。
我希望这对像我一样拉长头发的人有所帮助:)