北极寒流 » 网络资源 » win2003系统system占用80端口的解决办法 - 2013.10.04

win2003系统system占用80端口的解决办法

本人一直都是用APMServ在winxp中搭建本地服务器测试网站,但最近换了win2003系统,结果本来在XP正常使用的APMServ启动时死活都提示80端口被占用,换成8080端口,虽然提示服务启动了,但是本地网站却打不开,在cmd中用命令查找时,发现提示system占用了80端口。

如何查看端口

在win03的cmd命令窗口输入netstat -abn ->c:/port80.txt 然后到c盘port80.txt文件中找到占用80端口的程序pid,记下pid。打开任务管理器,点击“查看”/选择列,勾选“PID(进程标识符)”,然后单击“进程”标签,找到80端口对应的pid。

如本人的命令结果输入显示为

TCP 0.0.0.0:80 0.0.0.0:0 LISTENING 4

其中4为进程pid

打开任务管理器,发现pid为4的是System进程

============================================

查了很长时间。从网上也找了不少原因。

总结起来,无非有几点:

1、装有sqlserver2008的系统,会有一个sqlserver reporting services服务会占掉这个端口。

查看结果:我查了一下,这个服务早就被我停了。

2、迅雷,QQ旋风等一些下载工具会占用这个端口,尤其是迅雷在开着的时候。

检查结果:我在之前也碰到过这个情况,把迅雷停了就可以了,可现在还是不行,于是,把迅雷卸掉。结果发现还是不行。

3、iis可能会占用这个端口。

检查结果,虽然我的机器上也装有iis。但是,我现在所有的iis服务都是用着8080端口,而且还没有开启。也基本上排除了。

4、World Wide Web Publishing Service这个服务也有可能,

检查结果,这个服务是iis启动的必备服务,倒也有可有,但关了后,再看,80端口依然被占。重启还是不行。

可能的一些问题,全被排除了,再然后,发现有人推荐如下的解决方法。 去注册表中修改一个值。

============================================

打开RegEdit:

找到HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/Services/HTTP

找到一个DWORD值Start,将其改为0

重启电脑,System进程将不会占用80端口

============================================

照做了,还是不行,当然,网上是说的是win7系统。

同样的,还有用命令行来做以上操作的

============================================

1. sc config http start= demand

2. Reboot

3. Run the command (netsh http show servicestate) as administrator

After you have run this command, you can disable http.sys as follows:

1. net stop http

2. Sc config http start= disabled

Please let me know if you face any issues in the process.

============================================

试了一下,还是一点用都不管,其实,命令行的这个操作,和改注册表的效果是一样的。

实在没辙,这时,已经重启了机器十几回,因为是远程 控制服务器,每一次重启得十几分钟,可把我折腾坏了。

想起有一些软件是可以监控进程以及进程中包含的线程的,于是我去下载了一个线程查看器。procexp。

装上之后,再看system进程。发现有两个线程很可疑。

第一个就是:World Wide Web Publishing Service,这个服务刚才停过,发现没有效果,我就又起来了。

第二个一个internet的线程,再看这个线程,是由iis admin services这个服务引起的,其他没什么了,这个服务应该也是iis启动的一个必备服务。停掉后,再看,果然80端口不再被占,可以顺利的使用。

最后总结原因。原来是即使 iis里部署的网站都不用80端口,在启动时,仍然会被iis admin services 和World Wide Web Publishing Service,这几个iis必备服务抢到80端口,所以,就一直报80端口被占。把这个服务停掉后,先启动apmserv.然后再启动iis admin这个服务。就一切正常了。

资料来源:http://blog.sina.com.cn/s/blog_a68ed3da01010ad3.html