文章编号: 307197 - 最后修改: 2006年2月28日 - 修订: 8.5

SQL Server 不能将绑定到 SQL Server 正在其侦听时服务器的 TCP/IP 端口另一个应用程序使用的 TCP/IP 端口

SQL 无法接受传入连接的 TCP/IP。时,将发生这种类型的失败,该 SQL Server 中记录以下错误消息错误日志:
服务器 SuperSocket 信息: TCP 端口 1433年上的绑定失败
SQL 服务器侦听命名管道
服务器 SQL Server 是否已准备好进行客户端连接
 
解决方法: 
若要变通解决此问题,将添加一个 SuperSocketNetlib\Tcp\TcpAbortiveClose 的特定实例的 MSSQLServer 注册表项中的值。若要这样做,请按照下列步骤操作:
  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 是为您的系统对应的值的占位符,您可以找到 MSSQL.xMSSQLSERVER 的值在以下注册表子项中的注册表项。
      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 位置实例在迁移过程中。
其他:
 
没有在接管了 SQL Server 正在侦听该端口的计算机上运行的另一个应用程序。在这种情况下该端口是 TCP 端口 1433年。在情况下也出现该问题 TCP/IP 客户端负载过重的位置。

此行为有其他可能的原因。如果本文中的变通办法不能解决问题,请参阅下面 Microsoft 知识库中相应的文章:
293107   另一个应用程序使用的服务器的 TCP/IP 端口
319578   当您更改 IP 地址 SQL Server 故障转移群集节点上的时出现错误消息:"绑定失败"
312935   若要将绑定在启动时的 TCP/IP 端口的 FIX: SQL Server 失败
308091   错误: 不能在多个 SQL Server 2000 实例上使用隐藏服务器选项