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,直接空着就好!汗颜了,自己之前的一个误操作,搞了大半天才发现是这样的一个乌龙。

 

 

 

 

 

 

 

参考文章

80端口被占用了怎么办?

搭建IIS服务器80端口却已被占用的问题和用了Sc config http start= disabled命令导致HTTP服务无法启动的解决方案

 

posted @ 2018-09-12 22:33  wenglabs  阅读(2976)  评论(0编辑  收藏  举报