因此,我们会间歇性地收到这些错误。
建立与SQL Server的连接时发生与网络相关或特定于实例的错误。服务器未找到或无法访问。验证实例名称是否正确,以及SQL Server是否配置为允许远程连接。 (提供者:命名管道提供程序,错误:40 - 无法打开与SQL Server的连接)
注意那里有关命名管道提供者的部分吗?
这是我的连接字符串:
var conStr = "Data Source=tcp:MyServer;Initial Catalog=MyDatabase;User ID=myusername;Password=myuserpassword;Max Pool Size=100;MultipleActiveResultSets=True;Connect Timeout=120;";
在我的连接字符串中,您会注意到我指定了TCP。所以这个错误信息对我来说很疯狂。我不能以任何可靠的方式复制它,但是,它每天,每天都会发生。事件日志中没有任何内容,sql server日志,周围的应用程序日志,什么都没有。此外,当它发生时,来自整个企业的各种其他应用程序/服务器至少有2k个其他连接没有这个问题,直到他们这样做。
我应该补充一点,这些都是生活在VSphere集群内的虚拟机,所有主机之间都有40Gbps的连接。
我已经在谷歌搜索结果中读了3页深的每一页(是的,我整整了3页)。我输了。
按要求:
static void Main(string[] args)
{
var conStr = "Data Source=tcp:MyServer;Initial Catalog=MyDatabase;User ID=myusername;Password=myuserpassword;Max Pool Size=100;MultipleActiveResultSets=True;Connect Timeout=120;";
using (var con = new SqlConnection(conStr))
{
con.Open();
}
}