SQL协议命名管道已禁用,但仍会定期收到错误"命名管道提供程序错误:40 - 无法打开与SQL Server的连接"

时间:2018-04-17 11:48:47

标签: .net sql-server sql-server-2008 sqlconnection

我在.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控制台应用程序

0 个答案:

没有答案