Share via


疑難排解:連接被強制關閉

使用 TCP/IP 連接到 SQL Server 時,可能會發生此錯誤。

錯誤文字

這個錯誤可能會以下列格式出現:

  • TCP_PROV:現有的連接已被遠端主機強制關閉。

  • ProviderNum: 7,錯誤: 10054,ErrorMessage:「TCP 提供者: 遠端主機已強制關閉一個現存的連線。」

  • 無法處理的例外狀況: 傳送要求至伺服器時發生傳輸層錯誤。(提供者: TCP 提供者,錯誤: 0 - 遠端主機已強制關閉一個現存的連線)。

此錯誤的常見原因

下表將列出此錯誤的常見原因和解決方案。

原因

解決方案

用戶端目前是用不受支援的 SQL Server Native Client 版本進行連接。

請將用戶端電腦更新為 SQL Server Native Client 的伺服器版本。

故障的網路硬體正在卸除部分 TCP 傳輸。

請使用網路監視程式來分析 TCP SYN、ACK 和 FIN 訊息。

SynAttackProtect 設定可能正在卸除連接。

請參閱後面的「在 Windows Server 2003 SP1 上執行的連接可能會被強制關閉」一節。

在 Windows Server 2003 SP1 上執行的連接可能會被強制關閉

針對 Windows Server 2003 Service Pack 1 和更新版本上執行的 SQL Server Database Engine 執行個體,使用大量用戶端連接嘗試測試延展性時,如果要求到達的速度比 SQL Server 回應要求的速度快,Windows 可能會卸除連接。這是 Windows Server 2003 Service Pack 1 及更新版本的安全性功能,用於實作內送 TCP 連接要求的有限佇列。

若要解決這個問題,請使用 regedit.exe 公用程式來加入下列登錄機碼:

機碼

型別

名稱

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\

DWORD

SynAttackProtect

00000000

安全性注意事項安全性注意事項

設定此登錄機碼可能會讓伺服器曝露在 SYN Flood、阻斷服務攻擊的威脅下。除非必要並了解安全性風險,否則請勿加入此登錄值。請於測試完成後移除此登錄值。

請參閱

概念