Default web site located in IIS can't start correctly
近来经常发生IIS的Default web site的状态为stopped,并且无法启动。启动时,弹出“Address already in use”,重新启动机器都没有用。
原因CAUSE:
Another service or application is listening to or using one of the default TCP ports (80 for http connections, 443 for https connections) that the World Wide Web Publishing Service (W3SVC) needs to bind to.
解决措施RESOLUTION:
因为,我当前使用的OS为Windows 2000 Prof.,采用MS的Command Line,执行如下命名:
netstat –an
经检测,发现80端口的确被其他application占用。
Proto Local Address Foreign Address State
TCP 0.0.0.0:80 0.0.0.0:0 LISTENING
然后,进一步通过telnet localhost 80 尝试连接该application (注:localhost可以替换为特定的IP)。
如果无法确定到底是什么application占用80端口,可以从Internet下载一些这方面的工具。Reference link (1) 中MS提供一些第三方的工具。
我从http://www.ntutility.com/freeware.html下载了Ports Lock工具,安装运行,然后通过telnet localhost 80连接该application,从Ports Lock中检测在应答的application。呵呵,原来发现是一个自动启动的application,在电脑启动时,抢在IIS启动Default Web Site之前,占用了80端口。
找到占用80端口的Application后,直接停止该Application的运行,就一切OK了。
如果在Windows XP环境中,就简单多了,则可以通过:netstat –ano,可以检测出正在使用该端口号的应用程序。
Proto Local Address Foreign Address State PID
TCP 0.0.0.0:80 0.0.0.0:0 Listening 888
然后在Task Manager中,删除/中止上述指定的PID(Process Identifier),就可以了。
Reference Links:
(1) You Receive an Error Message When You Try to Start the Web Service, Microsoft Knowledge Base Article – 261194, http://support.microsoft.com/?id=261194
(2) How to determine which program uses or blocks specific transmission control protocol ports in Windows, Microsoft Knowledge Base Article – 281336, http://support.microsoft.com/default.aspx?scid=kb;EN-US;281336