如何停止IIS7监听特定的IP地址和端口?

如何停止IIS7监听特定的IP地址和端口?

我正在尝试在 Windows Server 2008 上安装 Apache。安装结束时出现警告,提示我配置 Apache 监听的 IP 地址无法绑定。当我使用netstat -a -p tcp要查看是否有任何进程正在侦听 IP 地址和端口,我看到几个条目……其中一个显示为正在侦听 0.0.0.0:80。以下是输出的部分列表。

  Proto  Local Address          Foreign Address        State
  TCP    0.0.0.0:80             MYSERVERNAME:0           LISTENING

这看起来是 IIS7 在端口 80 上监听所有 IP 地址。令人困惑的是,我停止了 IIS7。所有网站都显示为已停止。我试过iisreset /STOP以及使用 IIS7 管理器,但仍有一些东西在监听 0.0.0.0:80。我甚至确保每个网站都绑定到我想要为 Apache 释放的 IP 地址以外的另一个 IP 地址。还有其他人遇到过这种情况吗?

答案1

“敏捷绝地”让我走上了正确的道路。在搜索“禁用套接字池 IIS7”后,我遇到了一个很棒的文章给出了一些分步说明。我按照说明操作,果然成功了!我能够阻止 IIS7 绑定所有 IP 地址。基本上,它归结为以下命令(我从上面的文章中复制并粘贴了这些命令,以防文章被删除)。

  1. 添加或确保您的机器有两个 IP
  2. 打开命令提示符
  3. 类型netsh
  4. 类型http
  5. 类型sho iplisten。应为空白
  6. 类型add iplisten ipaddress=192.168.0.90(使用您希望 IIS7 绑定的公共 IP 地址)

您应该看到已成功添加 IP 地址

  1. 类型sho iplisten再次

列表中应该显示 192.168.0.90

  1. 类型exit退出 netsh

  2. 類型netstat -an

    看看列表中是否有 192.168.0.90:80。如果看到 0.0.0.0:80,请执行iisreset

答案2

IIS 这样做是为了提高套接字池性能。我们有几个 APACHE/Windows 实例并排运行。我认为这在较新版本的 IIS 中不是问题。无论哪种方式,您都需要禁用套接字池:

对于 IIS6

http://support.microsoft.com/kb/238131

相关内容