故障排除:强行关闭的连接

使用 TCP/IP 连接到 SQL Server 时,可能会出现此错误。

错误文本

该错误出现时可能具有以下格式:

  • TCP_PROV: 现有连接被远程主机强行关闭。

  • 访问接口编号: 7,错误: 10054,错误消息:“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 数据库引擎 实例的客户端连接尝试测试可伸缩性时,如果请求到达的速度快于 SQL Server 提供的连接速度,则 Windows 可能会删除这些连接。这是 Windows Server 2003 Service Pack 1 和更高版本的一项安全功能,可实现有限的传入 TCP 连接请求队列。

若要解决此问题,请使用 regedit.exe 实用工具添加以下注册表项:

类型

名称

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

DWORD

SynAttackProtect

00000000

安全说明安全说明

设置此注册表项可能会使服务器面临 SYN 泛滥和拒绝服务攻击的威胁。只有在必要并且了解这些安全风险的情况下,才可以添加此注册表值。完成测试后,请删除此注册表值。

请参阅

概念