使IIS6不听一个IP

我有另一个服务,需要在服务器的一个IP上使用多个端口。 当IIS启动时,它使用所有未使用的IP,因此其他服务无法绑定其IP。 如果我首先启动其他服务,则可以使用IP,但是我不能依赖服务启动的顺序,也不能在某个时间点重新启动服务。 有没有办法让IIS根本不使用IP?

显然,在IIS6中,UI设置被破坏了,这需要使用httpcfg完成,其要点是:

键入以下内容,其中xxx.xxx.xx是要添加的IP地址:

httpcfg set iplisten -i xxx.xxx.xx 

当这成功时,Httpcfg返回以下内容:HttpSetServiceConfiguration用0完成

要查看其他状态代码,请参阅Httpcfg帮助。 添加IP地址后,使用以下命令列出它:

 httpcfg query iplisten 

Httpcfg返回以下内容:IP:xxx.xxx.xx重新启动服务

我终于find了答案:

http://devlicio.us/blogs/billy_mccafferty/archive/2008/09/02/prevent-iis-from-binding-to-all-assigned-ip-addresses.aspx

有一个名为httpcfg.exe的实用程序,可以用来指定IIS将侦听哪些IP。

我下载了支持工具( http://msdn.microsoft.com/en-us/library/windows/desktop/aa364478%28v=vs.85%29.aspx ),并使用httpcfg.exe中描述的几个职位(即停止http服务,添加所需的ip号码,除了我需要绑定到别处)。 我到了哪里

 httpcfg query iplisten 

不再列出我的排除号码。 但是,运行

 netstat -anb -p tcp >netstat.txt 

并查看netstat.txt显示PID 4仍然通过0.0.0.0在所有的IP号码上监听端口80(和443)。 因此,我需要分离出的ip号码还没有可用。

最后一步是显式删除0.0.0.0 – 即使它不在iplisten列表中。

 net stop http /y httpcfg.exe delete iplisten -i 0.0.0.0:80 iisreset.exe 

这立即奏效。 顺便说一下,不需要重新启动服务器。

当然。 启动Internet信息服务pipe理器。 展开,直到您在“网站”下看到您的网站。

对于每个站点,右键单击并select“属性”。 在“网站”选项卡上,单击“IP地址”旁边的“高级”,然后仅填写要使用的地址(而不是默认的“全部未分配”)