我正在尝试连接到服务器上的命名 SQL 实例。已经有 SQL Server 2005 的默认实例和一个新命名的实例 - SQL Server 2008。我正在使用“网络库”属性来使用 TCP 连接,但出于某种原因,他尝试连接默认实例并忽略有关登录错误的错误。
如果我删除网络库属性,连接也会建立,并且不会出现任何错误。
我正在使用 Windows 身份验证并拥有所需的所有权限。
有问题的连接字符串:
数据源 = ServerName \ InstanceName,1433;网络库 = dbmssocn;初始目录 = MyDataBaseName;集成安全性 = SSPI
工作连接字符串:
数据源 = ServerName \ InstanceName;初始目录 = MyDataBaseName;集成安全性 = SSPI
我想了解一下原因。提前谢谢您,
塔米尔
答案1
连接字符串有 2 个不同之处,所以我会尝试回答这个问题......
- 命名实例不监听端口 1433(只有默认实例才会监听)
- 指定端口时实例名称将被忽略
所以:
ServerName\InstanceName,1433
表示连接到端口 1433 上的服务器“ServerName”ServerName\InstanceName
表示连接到服务器“ServerName”并将实例名称解析为正确的端口(解析使用端口 1434 UDP)
但是,network library=dbmssocn
这意味着使用 tcp。可能是 SQL Server 实例(请参阅端口内容)没有侦听 tcp