修复︰ IIS 6.0 不正确绑定到端口的 IP 地址添加到 IP 包含列表


症状


您可能会注意到,Microsoft Internet Information Services (IIS) 6.0 不正确地绑定到端口的 IP 地址添加到 IP 包含列表时。请考虑以下情形:
  • Web 服务器具有两个 IP 地址。这些 IP 地址绑定到已安装的网络卡在 Internet Information Services 管理器 (IISM) 在 IIS 6.0 中。在此示例中,两个 IP 地址是 10.10.10.2 和 10.10.10.3。
  • 在 IIS 6.0 中有两个网站。网站 1 绑定到 10.10.10.2:80 的 HTTP 通信。网站 1 也绑定到 SSL 通信,并为 10.10.10.2:443。2 的网站绑定到 HTTP 流量仅为 10.10.10.3:80。
在这种情况下,当您使用netstat命令查看计算机正在侦听的端口您可能注意到,IIS 6.0 将绑定到端口 80 和 443 端口上两个 IP 地址。

出现此问题是以下条件之一为真︰
  • 这两个 IP 地址已添加到 IP 包含列表。
  • 端口 80 和 443 端口被绑定在 0.0.0.0。
通过 IIS 6.0 DisableSocketPooling属性设置为 True,不能解决此问题。

原因


发生此问题是因为 Http.sys 文件将绑定到在 IISM 中配置的 IP 地址的 Web 站点上的任何端口。

解决方案


Service Pack 信息

若要解决此问题,请获取最新的 Windows Server 2003 服务包。有关详细信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
889100如何获取最新的 service pack,Windows Server 2003

修补程序信息

可以从 Microsoft 获得受支持的修复程序。然而,此修补程序仅用于解决本文中描述的问题。仅对出现这一特定问题的系统应用此修补程序。此修补程序可能会接受进一步的测试。因此,如果这个问题没有对您造成严重的影响,我们建议您等待包含此修复程序的下一个软件更新。

如果此修复程序可供下载,则在此知识库文章的顶部会出现“修补程序下载可用”部分。如果未显示此部分,请与 Microsoft 客户服务和支持部门联系以获取此修复程序。

注意:如果出现其他问题或需要任何故障诊断时,您可能需要创建单独的服务请求。对于不符合此特定的修补程序的其他支持问题和事项将照常收取费用。有关 Microsoft 客户服务和支持电话号码或创建单独的服务请求的完整列表,请访问下面的 Microsoft 网站︰注意:"提供修补程序下载"窗体显示获取此修复程序的语言。如果看不到您的语言,则修补程序没有那种语言的版本。

系统必备组件

您必须具有 Microsoft Windows 服务器 2003 Service Pack 1 (SP1) 要应用此修补程序的安装。

重启要求

应用此修补程序后,必须重新启动计算机。

修补程序替换信息

此修补程序不替换任何其他修补程序。

注册表信息

您必须创建一个注册表项以启用此修补程序。若要执行此操作,请执行以下步骤:
  1. 应用此修补程序。
  2. 单击开始,单击运行,键入regedit,然后单击确定
  3. 找到并单击以下注册表项︰
    HKLM\SYSTEM\CurrentControlSet\Services\HTTP\Parameters
  4. 右键单击参数,指向新建,然后单击DWORD 值
  5. 键入DisableEndpointSharing,,然后按 enter 键。
  6. 用鼠标右键单击DisableEndpointSharing,单击修改、 在数值数据框中,键入1 ,然后单击确定
  7. 删除 IP 侦听列表中的任何条目。

    注意:若要完成此操作,您必须安装了 Microsoft Windows 支持工具。

    要确定是否列出任何 IP 地址,请打开命令提示符,然后运行下面的命令︰
    httpcfg 查询 iplisten
    如果 IP 侦听列表为空,则该命令将返回以下字符串︰
    HttpQueryServiceConfiguration completed with 1168. 
    如果该命令返回的 IP 地址列表,则使用下面的命令删除每个 IP 地址列表中︰
    httpcfg 删除 iplisten-i x.x.x.x
    注意:在此命令中,占位符x.x.x.x表示 IP 侦听列表中列出的 IP 地址。

    如果删除命令成功执行,返回以下字符串︰
    HttpQueryServiceConfiguration completed with 0. 
  8. 单击开始,单击运行,键入cmd,然后单击确定
  9. 在命令提示符下,键入NET 停止 HTTP /y,,然后按 enter 键。
  10. 在命令提示符下,键入iisreset /restart,,然后按 enter 键。
注意:此更改将不起作用如果 HTTP。SYS IP 侦听列表包含任何条目。

文件信息

此修复程序的英文版具有的文件属性 (或更新的文件属性)在下表中列出。日期和为这些文件的时间以协调世界时 (UTC) 列出。当您查看文件信息时,它将转换为本地时间。要了解 UTC 与本地时间之间的时差,请使用控制面板中的日期和时间项中的时区选项卡。
Windows Server 2003 SP1,安腾体系结构



文件名称文件版本文件大小日期时间
Http.sys5.2.3790.2419794,62411-Apr-200521:40
Windows Server 2003 SP1 x64
文件名称文件版本文件大小日期时间
Http.sys5.2.3790.2419535,04011-Apr-200521:40
Windows Server 2003 SP1 x86

文件名称文件版本文件大小日期时间
Http.sys5.2.3790.2419289,28009-Apr-200503:48

状态


Microsoft 已经确认这是"适用于"一节中列出的 Microsoft 产品中的一个问题。这个问题最早在 Windows 服务器 2003 Service Pack 2。

详细信息


在 Microsoft Internet Information Services 5.0,可以解决此问题,通过将DisableSocketPooling属性设置为 IIS 5.0 元数据库中,则返回 True。尽管DisableSocketPooling属性是 IIS 6.0 元数据库中的有效属性,此属性设置为 True 的 IIS 6.0 元数据库中不能解决问题。

有关软件更新术语的详细信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:

用于描述 Microsoft 软件更新的标准术语的824684说明

参考资料


有关如何将 IP 地址添加到 IP 包含列表的详细信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章︰

813368设置配置数据库属性 DisableSocketPooling 不起作用