您目前已離線,請等候您的網際網路重新連線

當 SQL Server 正在接聽的 TCP/IP 連結埠被另一個應用程式使用時,SQL Server 無法繫結至該連接埠

徵狀
重要 本文包含有關修改登錄的相關資訊。修改登錄之前,請務必將它備份起來,並瞭解如何在發生問題時還原登錄。如需有關如何備份、還原和修改登錄的詳細資訊,請按一下下面的文件編號,檢視「Microsoft 知識庫」中的文件:
256986 Microsoft Windows 登錄說明
當您將 SQL 虛擬伺服器失敗替換為另一個節點,然後再回復至原始的節點時,SQL 虛擬伺服器有時會無法繫結至其正在接聽的連接埠。之後 SQL 虛擬伺服器也會無法接受 TCP/IP 上的連入連線。發生這種類型的失敗時,SQL Server 錯誤記錄會將下列錯誤訊息記錄下來:

2000-06-26 09:54:10.72 server SuperSocket Info:Bind failed on TCP port 1433. (2000-06-26 09:54:10.72 伺服器 SuperSocket 資訊:TCP 埠 1433 繫結失敗)
2000-06-26 09:54:10.74 server SQL server listening on Named Pipes. (2000-06-26 09:54:10.74 伺服器 SQL 伺服器正在接聽具名管道)
2000-06-26 09:54:10.74 server SQL Server is ready for client connections (2000-06-26 09:54:10.74 伺服器 SQL Server 已準備與用戶端進行連線)
注意 這個行為也可能會發生在非叢集的 SQL Server 2000 電腦以及 SQL Server 2005 電腦上。
發生的原因
電腦上還有另外一個應用程式正在執行,它控制了 SQL Server 正在接聽的連接埠。在本例中,該連接埠是 TCP 連接埠 1433。此外,TCP/IP 用戶端負載過高時也會發生這個問題。

這個行為還有其他的潛在原因。如果本文中的解決方法無法解決這個問題,請參閱「Microsoft 知識庫」中的下列文件:
293107 PRB: TCP\IP Port in Use by Another Application
319578 Error message when you change the IP address on a SQL Server failover cluster node:"Bind failed"
312935 FIX:SQL Server fails to bind TCP/IP port at startup
308091 BUG:Hide Server Option Cannot Be Used on Multiple Instances of SQL Server 2000
其他可行方案
警告 如果您使用「登錄編輯程式」或其他方法不當地修改登錄,可能會發生嚴重問題。這些問題可能會需要您重新安裝作業系統才能解決。Microsoft 不保證可以解決這些問題。請自行承擔修改登錄的一切風險。

如果要解決這個問題,請在該特定執行個體的 MSSQLServer 登錄機碼中加入
SuperSocketNetlib\Tcp\TcpAbortiveClose
值。如果要執行這項操作,請依照下列步驟執行:
  1. 透過命令列啟動 [登錄編輯程式] (Regedt32.exe)。
  2. 找出並按一下登錄中的下列機碼:
    • SQL Server 2000:
      HKEY_LOCAL_MACHINE\Software\Microsoft\MSSQLServer\MSSQLServer\SuperSocketNetlib\Tcp
    • SQL Server 2005:
      HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\MSSQL.x\MSSQLServer\SuperSocketNetLib\Tcp\


      注意MSSQL.x 是系統對應值的預留位置,您可以從下列登錄子機碼的
      MSSQLSERVER
      登錄項目值中找到 MSSQL.x
      HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\Instance Names\SQL\
  3. [編輯] 功能表上,指向 [新增],然後按一下 [DWORD 值]
  4. 輸入 TcpAbortiveClose,然後按下 ENTER。
  5. 按一下 [編輯] 功能表上的 [修改]
  6. 按一下 [十進位],然後在 [數值資料] 欄位中輸入 1
  7. 結束 [登錄編輯程式]。
注意 如果已在 SQL Server 2000 執行個體中建立登錄機碼並設定為 1,該登錄機碼會在執行個體移轉期間移轉到 SQL Server 2005 的位置。
其他相關資訊
如需詳細資訊,請按一下下面的文件編號,檢視「Microsoft 知識庫」中的文件:
286303Behavior of SQL Server 2000 network library during dynamic port detection
293107 PRB: TCP\IP Port in Use by Another Application
內容

文章識別碼:307197 - 最後檢閱時間:03/23/2006 09:14:20 - 修訂: 8.2

Microsoft SQL Server 2000 Standard Edition, Microsoft SQL Server 2005 Standard Edition, Microsoft SQL Server 2005 Developer Edition, Microsoft SQL Server 2005 Enterprise Edition

  • kbprb KB307197
意見反應