它正在捕获Application Insights中.net 4.6应用程序中支持的SQL命令文本吗?

时间:2017-08-29 19:59:55

标签: .net azure azure-application-insights

想象一下.NET 4.6控制台应用程序,它使用ADO.NET来查询sql数据库。

    static void Main(string[] args)
    {
        TelemetryConfiguration.Active.InstrumentationKey = "my key";

        var tc = new TelemetryClient(TelemetryConfiguration.Active);

        tc.TrackEvent("App start");

        string ConnString = "Data Source=localhost;Initial Catalog=MyDb;Persist Security Info=True;User ID=sa;Password=****;MultipleActiveResultSets=True";
        string SqlString = "Select * From Customers";
        using (SqlConnection conn = new SqlConnection(ConnString))
        {
            using (SqlCommand cmd = new SqlCommand(SqlString, conn))
            {
                cmd.CommandType = CommandType.Text;

                conn.Open();
                using (SqlDataReader reader = cmd.ExecuteReader())
                {
                    var res = reader.Read();
                }
            }
        }


        tc.TrackEvent("App stop");
        tc.Flush();
        Thread.Sleep(5000);
    }

在这种情况下是否支持捕获SQL命令文本?或者仅在IIS和Azure App上支持它?

在此示例中,我希望在依赖项事件中的Application Insights上看到文本“Select * From Customers”,但此文本不存在。只有少数其他属性的依赖项,如持续时间,客户端IP等,但不是sql文本。

1 个答案:

答案 0 :(得分:2)

sql语句由" status monitor"收集,它在运行时作为.net探查器在Web应用程序上运行。

https://docs.microsoft.com/en-us/azure/application-insights/app-insights-asp-net-dependencies

我会四处询问,但我非常确定在不跳过批次的情况下,将它连接到非网络应用上并不容易的箍。