我得到了一些比较奇怪的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日志,但找不到远程关闭的东西。有人有点想法吗?
答案 0 :(得分:2)
当重用池化连接时,不会引发连接错误,直到在连接上执行查询。 Open
只返回池中未使用的连接。
错误53(从命令NET HELPMSG 53
收集)是"找不到网络路径。"这表明名称解析错误在您的情况下似乎是间歇性的。
下次发生这种情况时,请尝试使用与连接字符串中指定的名称相同的名称从客户端PING服务器。