一、问题描述:
端口被系统system,pid[4] 占用的,无法使用两步走的传统常用命令解决,即:
netstat -ano|findstr "端口号"
taskkill /pid [查询的pid] -F
图 1-1
图 1-2
[注] 笔者被占用的端口是9001,故以9001端口来做截图说明,同时本机也没有SQL Server Reporting Services。
[注] 笔者的方法(在页尾补充章里)应该适用于大部分解决 被系统占用端口 的思路。
二、解决方案:
1:输入 netsh http show servicestate 查询http服务状态快照;
图 2-1
2:输入 tasklist|findstr "pid" 查看占用端口号的应用程序
图 2-2
3:输入 taskkill /pid [查询的pid-] -F 或 taskkill /f /t /im ****.exe
前者是根据杀死占用端口的pid来释放端口, 后者则是杀死占用端口的应用程序来释放端口。笔者用的前者。
图 2-3
三、整体图:
图 3-1
四、补充:
重启后端口再次被占用,所以这一次在杀死进程以前,先去看了一下这个服务究竟是做什么的。
图 4-1
占用端口的是显卡服务,不知道是做什么的,也不敢请轻易禁用/关闭,转到详细情况里,发现这个服务支撑的是:OneApp.IGCC.WinService.exe。
于是通过右键属性-> 位置信息,找到了这个客户端所在的文件夹。
图 4-2
在这个配置文件里找到了与port相关的属性:
<host> <baseAddresses> <add baseAddress="http://localhost:9001/igcc/service"/> <add baseAddress="net.tcp://localhost/igcc/service"/> </baseAddresses> </host>
其中 localhost:9001/igcc/service 与 图 4-1所显示的注册信息完全一致,于是修改了端口号为“4658”,重启,端口9001不再被占用,IGCC使用的端口就是笔者后来修改的端口号了。
图 4-3
转载请标明出处。
一些其他经典解决方案:
非系统占用端口:https://blog.csdn.net/u011713016/article/details/15813699
系统占用端口:http://www.2cto.com/os/201505/399603.html 偏向SQL Server Reporting Services