IIS服务器80端口却已被占用的问题
一、问题背景
在IIS中发布一个asp网站,发现无法使用80端口,错误为“无法启动该网站。其它网站可能正在使用同一端口”。但其实IIS的其它网站已经没有使用该端口了。这就需要设计到,找到那个进程占用这个80端口的问题了。
二、找到80端口被哪个进程占用
1、使用电脑快捷组合建Win+R打开快速运行,在运行窗口中输入“cmd”命令点击回车确定调出管理员命令提示符,紧接着输入netstat -ano |more,或netstat -ano >result.txt, 再或者netstat -ano|findstr "80"
点击回车后,显示出一大段文字,找到 "本地地址" 为 0.0.0.0:80 的一行,在行的最后我们会看到 PID为"4"。记住次PID;如下图所示:
3、打开Windows任务管理器,在进程中找到PID为"4"的程序,如下图所示:显示80端口被pid4 system占用。
三、80端口被进程占用解决
分析端口被占用原因:
该进程是Http.sys。它是http API的驱动组件,Http栈服务器。如果该端口被Http.sys占用,说明一些正在使用http.sys的应用程序在运行。通过netsh http show servicestate 命令能找出是哪个应用程序在使用Http.sys。
解决问题:
可以禁用http.sys。
禁用http.sys进程可以通过命令提示符来完成,首先输入net stop http,然后确认继续操作,在输入Sc config http start= disabled即可停止该项服务。
且慢!
以上方式的禁用HTTP的方式,将直接导致IIS不能发布网站而丧失功能。如果此时你使用Tomcat或者Appache发布也无妨,如果再使用IIS发布网站将遭殃了。
此时,网上的教程是开启Word Wide Web Publishing Service,但是,你真的去操作了,将无论如何也无法开启服务。此时,解铃还须系铃人,是因为以上的操作的原因,看好了。否则你将被网络上的所谓的解决方法弄的一头雾水。
四、解决禁用HTTP造成的IIS无法使用的问题
对于之前是因为输入了
net stop http
sc config http start=disabled
付出的代价再要回来。
第一步:在命令提示符里输入
sc config http start=demand & net start http就行了。
第二步:你要是不放心,再输入
sc config http start=enabled,它会提示所请求的服务已经启动。
第三步:再输入netstat -ano验证下会发现
80端口又被pid=4的东东占用了。
4.更改好之后,启动world wide web publishing service,然后应该可以搭建服务器了。之后最好重启下电脑(不重启应该没关系,重启之后world wide web publishing service会自动启动,不需要手动了,要是你还是有问题,我也黔驴技穷了。) good luck!
五、最终问题该如何解决
那么问题来了,如何让System进程4不占用80端口?
问题解决的正确打开方式是,在网站绑定设置时,不要在主机名那里设置本机的IP,直接空着就好!汗颜了,自己之前的一个误操作,搞了大半天才发现是这样的一个乌龙。
参考文章
搭建IIS服务器80端口却已被占用的问题和用了Sc config http start= disabled命令导致HTTP服务无法启动的解决方案
没有整理与归纳的知识,一文不值!高度概括与梳理的知识,才是自己真正的知识与技能。 永远不要让自己的自由、好奇、充满创造力的想法被现实的框架所束缚,让创造力自由成长吧! 多花时间,关心他(她)人,正如别人所关心你的。理想的腾飞与实现,没有别人的支持与帮助,是万万不能的。