奇怪的azure sql数据库连接问题

时间:2017-11-06 11:35:24

标签: sql-server azure

我得到了一些比较奇怪的sql数据库连接问题。

我们有一个托管在azure上的虚拟机,并在其上安装了sql server。 随机抛出

  

无法打开与SQL Server(53)的连接

但是,conn.Open()没有抛出异常,而是从我读取Sql Data阅读器的地方抛出异常。这个问题将持续5到10分钟,然后每隔很长时间(例如几天)消失。

using (SqlConnection conn = new SqlConnection(this.ConnStr))
{ 
    conn.Open();
    InsrumentName insrument = new InsrumentName();
    using (SqlCommand cmd = new SqlCommand("WF_CHART_GETNAME", conn))
    {
         SqlParameter para = new SqlParameter("@code", SqlDbType.VarChar, 500);
         para.Value = code;
         cmd.Parameters.Add(para);
         cmd.CommandType = CommandType.StoredProcedure;
         var reader = cmd.ExecuteReader();
         while (reader.Read())   --------------- Could not open a connection to SQL Server 53 thrown here
         {
            Do something
         }

         return insrument;
    }
}

我看了一下VM和sql server日志,但找不到远程关闭的东西。有人有点想法吗?

1 个答案:

答案 0 :(得分:2)

当重用池化连接时,不会引发连接错误,直到在连接上执行查询。 Open只返回池中未使用的连接。

错误53(从命令NET HELPMSG 53收集)是"找不到网络路径。"这表明名称解析错误在您的情况下似乎是间歇性的。

下次发生这种情况时,请尝试使用与连接字符串中指定的名称相同的名称从客户端PING服务器。