如果将某 SQL Server 实例配置为使用 Windows XP Service Pack 2 计算机上的命名管道服务器网络库,您可能无法连接到该实例

症状
您可能无法连接到 SQL Server 的一个实例,而且可能会收到下列错误消息之一。

错误消息 1

[命名管道]SQL Server 不存在或访问被拒绝。
[命名管道]ConnectionOpen (Connect())。


错误消息 2

无法连接到服务器 <SQL Server instance name>

服务器:消息 17,级别 16,状态 1
[Microsoft][ODBC SQL Server 驱动程序][命名管道]SQL Server 不存在或访问被拒绝。

错误消息 3

无法连接到 <SQL Server instance name>
当您执行以下操作之一时,就会发生此行为:
  • 试图连接到安装在 Microsoft Windows XP Service Pack 2 计算机上的 SQL Server 的一个实例。
  • 试图连接到配置为仅侦听命名管道服务器网络库的 SQL Server 的一个实例。
原因
默认情况下,运行 Microsoft Windows XP Service Pack 2 的计算机上会启用 Windows 防火墙。Windows 防火墙会关闭用于文件共享和打印机共享的端口(例如 445),以防止 Internet 计算机连接到您计算机上的文件共享和打印共享。

如果将 SQL Server 配置为通过 NetBIOS 会话使用命名管道侦听传入客户端连接,则 SQL Server 将通过 TCP 端口 445 进行通信,就像文件和打印机共享一样。因此,试图连接到 SQL Server 的 SQL Server 客户端会收到在“症状”部分提到的错误消息。
解决方案
要解决这个问题,必须明确启用 TCP 端口 445。为此,请使用以下方法之一。
  • 通过更改网络连接设置启用 TCP 端口 445

    为此,请按照下列步骤操作:
    1. 单击“开始”,然后单击“运行”。
    2. 运行对话框中,键入 Firewall.cpl,然后单击“确定”。
    3. Windows 防火墙对话框中,单击“高级”选项卡。
    4. 在“网络连接设置”下,单击您的网络连接,然后单击“设置”。
    5. 在“高级设置”对话框中,单击“服务”选项卡上的“添加”。
    6. 在“服务设置”对话框中,按照下面指定的值进行设置,然后单击“确定”。
      属性
      服务描述:命名管道上的 SQL Server。
      在您的网络上主持此服务的计算机的名称或 IP 地址(例如,192.168.0.12):计算机的当前 IP 地址。
      该服务的外部端口号445
      该服务的内部端口号445

      注意:确保在“服务设置”对话框中选择了 TCP 选项。
  • 通过启用文件和打印机共享来启用 TCP 端口 445

    为此,请按照下列步骤操作:
    1. 单击“开始”,然后单击“运行”。
    2. 运行对话框中,键入 Firewall.cpl,然后单击“确定”。
    3. Windows 防火墙对话框中,单击“例外”选项卡。
    4. 在“程序和服务”下单击以选中“文件和打印机共享”复选框,然后单击“编辑”。
    5. 编辑服务对话框中单击以选中“TCP 445”复选框,然后单击“确定”两次。
替代方法
要变通解决此问题,可以使用 TCP/IP 套接字网络库。可以为运行使用 TCP/IP 套接字库的 SQL Server 的计算机创建一个别名,也可以把 TCP/IP 用作唯一的默认启用的协议。要添加使用 TCP/IP 套接字库的 SQL Server 别名,请按照下列步骤操作:
  1. 单击“开始”£¬单击“运行”£¬键入 cliconfg,然后单击“确定”。
  2. 在“SQL Server 客户端网络实用工具”对话框中,单击“别名”选项卡,然后单击“添加”。
  3. 在“添加网络库配置”对话框中,在“网络库”下单击“TCP/IP”。
  4. 在“服务器别名”框中,键入计算机的 IP 地址或者运行 SQL Server 的计算机的名称,然后单击“确定”。
状态
这种现象是设计导致的。
参考
有关 Internet 防火墙的其他信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
298804Windows 防火墙可能会阻止浏览和文件共享
308127 如何在 Windows XP 的 Windows 防火墙中手动打开端口


有关导致这些错误消息的其他常见原因的更多信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
328306 出现“SQL Server Does Not Exist or Access Denied”(SQL Server 不存在或访问被拒绝)错误消息的可能原因


有关配置 SQL Server 2000 和 Windows XP Service Pack 2 的其他信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
841249如何配置 Windows XP Service Pack 2 (SP2) 以便与 SQL Server 一起使用
Springboard
属性

文章 ID:839269 - 上次审阅时间:03/03/2006 07:37:00 - 修订版本: 4.3

Microsoft SQL Server 2000 标准版, Microsoft SQL Server 2000 Desktop Engine (Windows), Microsoft SQL Server 7.0 标准版, Microsoft SQL Server, Desktop Edition, the operating system: Microsoft Windows XP SP2, Microsoft SQL Server 2005 Developer Edition, Microsoft SQL 2005 Server Enterprise, Microsoft SQL Server 2005 Express Edition, Microsoft SQL Server 2005 Standard Edition, Microsoft SQL 2005 Server Workgroup

  • kberrmsg kbtshoot kbsqlclient kbinput kbserver kbfirewall kbnetwork kbprb kbclientserver kbconnectivity KB839269
反馈