我在.NET应用程序中使用默认连接字符串,而不指定任何协议,例如
<add name="TestConn" connectionString="Data Source=1.1.1.2;Initial Catalog=testDB;MultipleActiveResultSets=True;Persist Security Info=False;User ID=sa;Password=1234; " providerName="System.Data.SqlClient" />
以下错误经常会从应用程序中记录下来,
&#34;建立与SQL Server的连接时发生与网络相关或特定于实例的错误。服务器未找到或无法访问。验证实例名称是否正确,以及SQL Server是否配置为允许远程连接。 (提供者:命名管道提供程序错误:40 - 无法打开与SQL Server的连接)&#34;
但是在下次连接尝试时,它会继续正常连接成功。 (假设通过TCP)
在SQL Server网络配置下的SQL Server配置管理器中,命名管道已禁用,启用了共享内存和TCP / IP。那么为什么它甚至试图使用命名管道进行连接?
应用程序和SQL服务器不在同一台机器上,我使用的是IP地址,因此也不应该使用共享内存,所以我可以告诉连接应该默认为TCP
我不想只在连接字符串中指定端口,例如 数据源= 1.1.1.2,1433或数据源= tcp:1.1.1.2;
我试图理解为什么要进行这些尝试?
使用的是SQL Server 2008 R2和.NET 3.5控制台应用程序