2010-01-21 271 views
1

我試圖連接到服務器上的命名SQL實例。 已經有SQL Server 2005的默認實例和一個新命名的實例--SQL Server 2008.我使用「網絡庫」屬性來使用TCP連接,但由於某種原因,他嘗試連接默認實例並省略錯誤關於登錄錯誤。SQL Server連接字符串問題

如果我刪除網絡庫propery連接建立以及沒有任何錯誤。

我正在使用Windows身份驗證並具有所需的所有權限。

有問題的連接字符串:

數據源=服務器\實例,1433;網絡庫= DBMSSOCN;初始目錄= MyDataBaseName;集成安全= SSPI

工作連接字符串:

Data Source = ServerName \ InstanceName; Initial Catalog = MyDataBaseName; Integrated security = SSPI

省略,1433;從所述連接字符串網絡庫= DBMSSOCN產生差別。添加它使服務器連接deafult實例。 這兩個服務器都允許遠程連接。

我想明白爲什麼,請。 由於提前,

塔米爾

+0

您也從工作連接字符串中刪除了端口號,該端口號是默認實例將在其上偵聽的默認端口 – slugster 2010-01-21 09:55:19

+0

是,謝謝,我也刪除它也:),對不起,如果不明確 – Tamir 2010-01-21 10:07:32

+0

順便說一句,這可能是更適合於serverfault.com – ConcernedOfTunbridgeWells 2010-01-21 10:25:28

回答

3

從我上your question on ServerFault答案抄...

連接字符串有2個差異,所以我會盡量回答這個...

  • 命名實例不會在端口1433(僅通過,呃默認實例,默認值)聽
  • 時指定

因此端口實例名稱被忽略:

  • ServerName\InstanceName,1433表示連接到端口1433上的服務器「ServerName」
  • ServerName\InstanceName表示連接到服務器「Serv erName「並解析實例名稱以更正端口(解析使用端口1434 UDP)

但是,network library=dbmssocn表示使用tcp。它可能是SQL Server實例(請參閱端口的東西)不在tcp上監聽

1

在猜測2005年和2008年的情況下,將不同的端口上偵聽。也許您需要將SQL Server 2008實例的連接字符串設置爲正確的端口;您可能會碰到SQL Server 2005偵聽器,並要求它提供2005安裝時不存在的實例。

SQL Server 2008實例偵聽的端口是 - This article discusses the subject.並且有一個powershell腳本,它實際詢問系統以找出DBMS真正監聽的端口。它還談論了一些關於這個配置在註冊表中的位置。