當您連接至 Windows Vista 或 Windows Server 2008 用戶端電腦上的 SQL Server 具名執行個體時,出現錯誤訊息:"Specified SQL server not found" (找不到指定的 SQL 伺服器) 或 "Error Locating Server/Instance Specified" (尋找指定的伺服器/執行個體時發生錯誤)

文章翻譯 文章翻譯
文章編號: 944390 - 檢視此文章適用的產品。
重要 本文中的資訊將告訴您,如何補救較低安全性的設定,或關閉電腦上的安全性功能。您可以進行這些變更,為特定的問題尋求解決方案。在進行這些變更之前,建議您先評估在特定環境中使用此解決方案的相關風險。如果您決定使用此解決方案,請採用任何其他的適當步驟,以協助保護電腦。
全部展開 | 全部摺疊

在此頁中

徵狀

試想下列案例。在執行 Windows Vista 或 Windows Server 2008 的電腦上,您連接至 Microsoft SQL Server 的具名執行個體。此具名執行個體位於遠端伺服器。在這種情況下,連接可能會失敗。

注意 當您連接至下列其中一個 SQL Server 版本時,會發生這個問題:
  • Microsoft SQL Server 2000
  • Microsoft SQL Server 2005
如果您使用 Windows Data Access Components (Windows DAC) 6.0 連接至具名執行個體,會收到下列錯誤訊息:
[DBNETLIB]Specified SQL server not found. (找不到指定的 SQL Server)
[DBNETLIB]ConnectionOpen (Connect()).
如果您使用 SQL Native Client 連接至具名執行個體,會收到下列錯誤訊息:
[SQL Native Client]SQL 網路介面:Error Locating Server/Instance Specified [xFFFFFFFF]. (尋找指定的伺服器/執行個體時發生錯誤 [xFFFFFFFF])
[SQL Native Client]Login timeout expired. (登入已超過逾時的設定)
當具名執行個體是容錯移轉叢集執行個體時,會發生這個問題。此外,如果遠端伺服器具有多個 IP 位址,可能也會發生這個問題。

發生的原因

當您連接至具名執行個體時,用戶端網路程式庫會傳送使用者資料包通訊協定 (UDP) 要求封包至具名執行個體的 IP 位址。然後,SQL Server Browser 會傳回 UDP 回應封包,其中包含有關連接端點的資訊。

然而,在 UDP 回應封包中,來源 IP 位址可能不是 UDP 要求封包傳送過去的 IP 位址。如果具名執行個體是容錯移轉叢集執行個體,來源 IP 位址會是實體電腦的 IP 位址,而不是遠端伺服器的虛擬 IP 位址。如果遠端伺服器具有多個 IP 位址,則來源 IP 位址可能是指派給遠端伺服器的任何 IP 位址。

在 Windows Vista 中,[Windows 防火牆] 不允許鬆散的來源對應。因此,[Windows 防火牆] 會捨棄 UDP 回應封包。

如需有關鬆散來源對應的詳細資訊,請參閱下列 Microsoft 網站的<UDP 連接>(英文) 一節:
http://technet2.microsoft.com/WindowsServer/en/library/3ccb6af5-d960-4a8d-b12b-70692dc47bf41033.mspx?mfr=true

其他可行方案

如果要解決這個問題,請使用下列其中一個方法。

方法 1

在連接字串中,指定要連接至具名執行個體的 TCP 連接埠號碼或具名管道名稱。

如需有關連接字串語法的詳細資訊,請參閱下列 Microsoft 網站的<建立正確的連接字串>(英文) 一節:
http://technet.microsoft.com/zh-tw/library/ms188635.aspx

方法 2

警告 這個解決方案可能會使電腦或網路更容易遭受惡意使用者或惡意軟體 (例如病毒) 的攻擊。雖然不建議使用這個替代解決方案,但我們仍提供這項資訊,讓您可以自行選擇是否採用這個方案。請自行承擔使用這個解決方案的一切風險。

在 [控制台] 的 [具有進階安全性的 Windows 防火牆] 中,為連接至 SQL Server 的應用程式建立傳出規則。如果要執行這項操作,請依照下列步驟執行:
  1. 在 [控制台] 中,按兩下 [系統管理工具]
  2. [系統管理工具] 中,按兩下 [具有進階安全性的 Windows 防火牆]
  3. [具有進階安全性的 Windows 防火牆] 中,按一下 [輸出規則],然後按一下 [新增規則]
  4. 按一下 [程式],然後按一下 [下一步]
  5. 按一下 [這個程式路徑],指定應用程式的路徑,然後按一下 [下一步]
  6. 按一下 [允許該連線],然後按一下 [下一步]
  7. 完成 [新增輸出規則精靈] 的步驟。

方法 3

警告 這個解決方案可能會使電腦或網路更容易遭受惡意使用者或惡意軟體 (例如病毒) 的攻擊。雖然不建議使用這個替代解決方案,但我們仍提供這項資訊,讓您可以自行選擇是否採用這個方案。請自行承擔使用這個解決方案的一切風險。

在 [控制台] 的 [具有進階安全性的 Windows 防火牆] 中,建立輸入規則,允許來自遠端伺服器所有可能 IP 位址,以及來自設定為容錯移轉叢集執行個體所有可能 IP 位址的流量。如果要執行這項操作,請依照下列步驟執行:
  1. 在 [控制台] 中,按兩下 [系統管理工具]
  2. [系統管理工具] 中,按兩下 [具有進階安全性的 Windows 防火牆]
  3. [具有進階安全性的 Windows 防火牆] 中,按一下 [輸入規則],然後按一下 [新增規則]
  4. 按一下 [自訂],然後按一下 [下一步]
  5. 按一下 [所有程式],然後按一下 [下一步]
  6. [通訊協定類型] 清單中,按一下 [任何],然後按一下 [下一步]
  7. [此規則將套用到哪些遠端 IP 位址] 下方,按一下 [這些 IP 位址],然後按一下 [新增]
  8. [IP 位址] 對話方塊中,輸入 [此 IP 位址或子網路] 下方其中一個 IP 位址,然後按一下 [確定]
  9. 如果要新增其他 IP 位址,請重複執行步驟 7 至 8,然後按一下 [下一步]
  10. 按一下 [允許該連線],然後按一下 [下一步]
  11. 完成 [新增輸入規則精靈] 的步驟。

狀況說明

Microsoft 已確認本篇文章<適用於>一節所列之 Microsoft 產品確實有上述問題。

其他相關資訊

如需有關 [具有進階安全性的 Windows 防火牆] 的詳細資訊,請造訪下列 Microsoft 網站:
http://technet.microsoft.com/zh-tw/windowsvista/aa937624(en-us).aspx

屬性

文章編號: 944390 - 上次校閱: 2008年2月20日 - 版次: 1.0
這篇文章中的資訊適用於:
  • Microsoft SQL Server 2005 Standard Edition
  • Microsoft SQL Server 2005 Workgroup Edition
  • Microsoft SQL Server 2005 Developer Edition
  • Microsoft SQL Server 2005 Enterprise Edition
關鍵字:?
kbtshoot kbprb kbexpertiseadvanced KB944390
Microsoft及(或)其供應商不就任何在本伺服器上發表的文字資料及其相關圖表資訊的恰當性作任何承諾。所有文字資料及其相關圖表均以「現狀」供應,不負任何擔保責任。Microsoft及(或)其供應商謹此聲明,不負任何對與此資訊有關之擔保責任,包括關於適售性、適用於某一特定用途、權利或不侵權的明示或默示擔保責任。Microsoft及(或)其供應商無論如何不對因或與使用本伺服器上資訊或與資訊的實行有關而引起的契約、過失或其他侵權行為之訴訟中的特別的、間接的、衍生性的損害或任何因使用而喪失所導致的之損害、資料或利潤負任何責任。

提供意見

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com