我有另一个服务,需要在服务器的一个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了答案:
有一个名为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地址”旁边的“高级”,然后仅填写要使用的地址(而不是默认的“全部未分配”)