一、問題描述:
端口被系統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