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

注意:这篇文章是由无人工介入的微软自动的机器翻译软件翻译完成。微软很高兴能同时提供给您由人工翻译的和由机器翻译的文章, 以使您能使用您的语言访问所有的知识库文章。然而由机器翻译的文章并不总是完美的。它可能存在词汇,语法或文法的问题,就像是一个外国人在说中文时总是可能犯这样的错误。虽然我们经常升级机器翻译软件以提高翻译质量,但是我们不保证机器翻译的正确度,也不对由于内容的误译或者客户对它的错误使用所引起的任何直接的, 或间接的可能的问题负责。

点击这里察看该文章的英文版: 813368
症状
当您启动 Internet Information Services (IIS) 6.0 上 Microsoft Windows Server 2003 时,IIS 将绑定的所有 IP 地址在上而不只是分配给网站的 IP 地址。即使您已将配置数据库属性 DisableSocketPooling 设置为 True,这可能是,则返回 true。
原因
若要成功地允许应用程序上不同的 IP 地址使用同一端口,您必须使用新的实用工具 Httpcfg.exe。Httpcfg.exe 位于 Windows Server 2003 CD Support.cab 文件的一部分 Support\Tools 目录中。
解决方案

若要安装 Microsoft Windows 支持工具

  1. Windows Server 2003 光盘插入 CD-ROM 或 DVD-ROM 驱动器。
  2. 将打开 CD 时单击 执行其他任务
  3. 单击 浏览此光盘
  4. 双击 支持
  5. 双击 工具
  6. 双击 SUPTOOLS.MSI
  7. 单击 下一步、 在 名称组织 框中键入您的信息、 单击 下一步,然后单击在下面的屏幕上的 下一步
  8. 单击 下一步 重新开始安装。
  9. 单击 完成

若要添加到 IP 包含列表的 IP 地址

  1. 单击 开始,然后单击 运行
  2. 键入 cmd,然后单击 确定 以打开命令提示符。
  3. 其中 xxx.xxx.x.x 是 IP 地址您这一下面要添加的类型:
    httpcfg 设置 iplisten-i xxx.xxx.x.x
    当成功时,Httpcfg 返回如下:
    已完成,但有 0 HttpSetServiceConfiguration

    若要访问其他状态代码,请参阅 Httpcfg 帮助。
  4. 添加 IP 地址后,使用以下命令列出它:
    httpcfg 查询 iplisten
    Httpcfg 返回如下:
    IP: xxx.xxx.x.x
  5. 从命令提示符停止 HTTP 服务和其相关的服务。为此请在命令提示符下键入以下字符串:
    净停止 http/y
  6. 重新从命令提示符下启动 HTTP 服务和它依赖于它的服务。为此请在命令提示符下键入以下字符串:
    net start w3svc
    注意当您启动 w3svc 时,将启动已停止时 HTTP 已停止的所有服务。
状态
此行为是设计使然。
更多信息
IIS 5.0 使用配置数据库属性 DisableSocketPooling 允许到同一个端口的应用程序访问通过不同的 IP 地址。如果将此值设置为 True 允许这些应用程序存在于相同的 Microsoft Windows 2000 安装上。

因为 DisableSocketPooling 被定义为有效的属性,在 IIS 6.0 配置数据库架构 (MBSchema.xml) 您仍可以设置此属性通过使用 Adsutil.vbs,但此项不起作用。驱动程序的一部分在新内核级别 HTTP.sys 在 IIS 6.0 功能。若要配置 HTTP.sys,您必须使用 Httpcfg.exe。

在 IIS 5.0 TCP 侦听器是 Winsock。Winsock 使用套接字和 IIS 绑定到的性能和可伸缩性的 Winsock API。引入套接字池的目的是为了解决的问题在 Internet 信息服务器 (IIS) 4.0 所在高很多网站与资源使用情况中使用单独的 IP 地址。

若要解决此可伸缩性问题,IIS 5.0 使用套接字池允许共享的资源。套接字池允许双精度或三倍的唯一 IP 与特定的服务器上运行的网站数量地址。DisableSocketPooling 属性还引入了 IIS 5.0 中,当另一个应用程序要求使用 IIS 侦听一个端口,默认情况下安装 (如端口 80) 时,将使用。

在 IIS 6.0 中 HTTP.sys 是 TCP 侦听器和 HTTP.sys 不使用 Winsock API。套接字不是可配置属性。HTTP.sys 将使用一个 IP 包含列表。默认状态下,该列表为空,所有的 IP 地址上侦听 IIS。您可以指定 IIS 将侦听,通过将其添加到 IP 包含列表的 IP 地址。

重要IP 包含列表中的 HTTP 服务的启动过程中读取。 如果更改了列表中,您必须重新启动服务。

注意HTTP 服务和 HTTP SSL 服务都是不同的服务。HTTP 服务未出现在服务列表中,并在命令提示符下,必须重新启动。若要这样做,请按照下列步骤操作:
  1. 单击 开始 并单击 运行,然后键入 cmd 以打开命令提示符。命令提示符键入 净停止 http/y,然后按 ENTER 键。 这将停止 HTTP 安全套接字层 (SSL) 服务和万维网发布服务,因为它们是依赖于 HTTP 服务。
  2. 要启动 HTTP 服务,请在命令提示符下键入 net start w3svc。这将启动 HTTP SSL 服务和 HTTP 服务。
IP 包含列表中添加 IP 地址后,您必须添加由 Web 站点使用的每个 IP 地址。如果您将 Web 站点绑定到 IP 地址,并且该地址不在的列表的网站不会启动。
参考
有关使用此命令的帮助,请参阅 Httpcfg 联机帮助。若要进行 Httpcfg 联机帮助键入 Httpcfg / 吗? 一个命令提示符或请按照下列步骤操作:
  1. 单击 开始
  2. 单击 所有程序
  3. 单击 Windows 支持工具
  4. 单击 支持工具帮助
  5. 单击 按字母顺序列出的工具按文件名称 下的 H
  6. 双击 Httpcfg.exe (HTTP 配置实用程序)
有关 DisableSocketPooling 的详细信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
238131如何禁用套接字池

警告:本文已自动翻译

属性

文章 ID:813368 - 上次审阅时间:12/03/2007 21:25:59 - 修订版本: 5.3

Microsoft Internet Information Services 6.0

  • kbmt kbhowto KB813368 KbMtzh
反馈