首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> SQL Server 資料庫 >> 關於SqlServer

解決 SQL Server 2000 環境下出現 SQL Server 2005 連線錯誤 40 的問題

     編輯:關於SqlServer

錯誤現象

在使用 ASP.NET 2.0 搭配 SQL Server 2000 開發系統時,執行專案卻出現以下錯誤訊息:

An error has occurred while establishing a connection to the server. When connecting to SQL Server 2005, this failure may be caused by the fact that under the default settings SQL Server does not allow remote connections. (provider: Named Pipes Provider, error: 40 - Could not open a connection to SQL Server)

明明使用的是 SQL Server 2000,錯誤訊息卻提示「connecting to SQL Server 2005」,令人困惑。

根本原因

安裝 Visual Studio 2005 時,會一併安裝 SQL Server 2005 的相關元件(如 SQL Server 2005 Express Edition)。這導致系統在處理資料庫連線請求時,預設改由 SQL Server 2005 的服務來處理。而 SQL Server 2005 預設設定不允許遠端連線,因此拋出錯誤 40。

解決方案

  1. 開啟 SQL Server 2005 Configuration Manager(SQL Server 2005 設定管理工具)。
  2. 展開「SQL Server 2005 網路設定」→ 選取對應的執行個體(通常為「MSSQLSERVER」或「SQLEXPRESS」)。
  3. 在右側面板啟用 Named Pipes 與 TCP/IP 協定(預設為停用)。
  4. 右鍵點選「SQL Server 2005 服務」→ 選取對應服務 → 選擇「重新啟動」使設定生效。
  5. 若仍無法連線,檢查 Windows 防火牆是否封鎖 TCP 1433 連接埠,或在防火牆新增例外規則允許 sqlservr.exe 通訊。

補充說明

若專案確定只需使用 SQL Server 2000,也可在連線字串中明確指定 Data Source=伺服器名稱;Initial Catalog=資料庫名;Integrated Security=SSPI;,並確認 sqlncli 或 SQLOLEDB 提供者正確指向 SQL Server 2000 執行個體,避免被導向 SQL Server 2005 服務。

此問題常見於並存 SQL Server 2000 與 2005 的開發環境,正確設定網路協定與防火牆即可解決。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved