![IIS7 无法监听新 IP](https://linux22.com/image/680616/IIS7%20%E6%97%A0%E6%B3%95%E7%9B%91%E5%90%AC%E6%96%B0%20IP.png)
我们正在使用 Windows 2008 R2 和 IIS7。它是一个 VMWare VM 实例。
最近我给网卡添加了一个新 IP。然后使用 IIS 管理器 UI 添加一个绑定到 IP A 和端口 80 的新 IIS 条目。网卡有现有的 IP B 和 C。
然而,浏览时它永远不会返回网站http://A/。我尝试 telnet IP A 80,没有响应。我尝试过更改为端口 443,https://A/。没什么不同。
所以我通过将 IIS 条目更改为 ip B:443 来测试它。它正在工作。Telnet 测试也通过了。
然后我通过将相同的 IIS 条目更改为 ip C:8888 来测试它(以确保没有其他应用程序错误地监听该端口)。它正在运行。Telnet 测试通过。
所以唯一的问题是新 IP 无法在我的 IIS7 中使用!从 IIS 管理器 UI 中,除了有问题的条目外,我找不到任何正在监听 IP A 的条目。我在 applicationhost.config 中搜索并得到相同的结果。我该如何排除故障?
PS IP A 可以 ping 通。当我从网卡上移除 IP A 时,它将立即变得无法 ping 通。
答案1
抱歉,我刚刚才找到答案。这是 IIS7 的一个错误(微软说这是设计使然)。参考:在 Windows Server 2008 上安装 IIS 7.0 时,IIS 会绑定到服务器上的所有 IP 地址
首先,我运行netsh http show iplisten
检查哪个 IP 正在监听 http 服务。仅列出了旧 IP B、C 和 127.0.0.1。
因此我运行netsh http add iplisten xxx.xxx.x.x
(IP A)来添加到收听列表。
最后重启服务器(本文建议重启 http,但我不建议。这是因为 http 的一些依赖项可能缺失。如果重启 http,可能会导致另一个问题。)事实上,我不需要重启来让新 IP(A)工作并监听。但为了安全起见,我还是重启了它。