废话不多说,直入主题:windows系统80端口号被System占用,查找追踪看到是 PID:4 的一个System进程在占用
网上所说的解决方法:
方法一:1、【Win】+【R】组合快捷键,快速打开运行命令框,在打开后面键入命令:【Regedit】
2、找到\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\HTTP 在右边栏的Start,把3改为4(或2)
结果:80端口确实被关闭了。但是IIS服务器整个都用不了。
方法二:1、右键停运整个IIS或是卸载IIS的。额...这办法。我只能说有点无语...
结果:停运IIS之后,80端口还是被占用
方式三:1、说是 SQL SERVER REPORTINH SERVER 占用了80端口
2、打开服务,找到SQL SERVER REPORTINH SERVER,禁用且停止运行
结果:我关闭和禁用后,80端口还是被占用
经过一整天的探索,且使用了以上3种方式。还是解决不了问题。
最终解决方法总结:
首先 1、排查到是PID:4 的一个System进程在占用。
2、把IIS里的网站端口全部改为除80以外的端口
3、使用命令 netsh http show servicestate 查看一下当前的http服务状态
正常情况下,可以找到使用了80端口的程序,然后往下拉,查找 请求队列里面 对应的程序,且看PID值,去任务管理器将其关闭即可。
4、我运行了netsh http show servicestate之后,因为太长了,没看到使用了80端口的URL,因此我就在 下面的请求队列里查找。发现了两个不是我自定义的网站运行程序。如下图:
接着在【任务管理器】查找指定的进程ID(即PID)值
5、我查找上图请求队列中的【请求队列尚未命名】那个程序,PID值为1584,去【任务管理器】查找。看到了是IIS中MsDepSvc.exe程序在运行
那MsDepSvc.exe程序是什么东西呢?
经查询,MsDepSvc 使用80端口,用于 Microsoft Web Deploy 3.6 的远程代理服务
它是使用.net编程一键远程发布的一个主要插件,将其程序关闭即可释放了80端口。
搞定!