1. 程式人生 > >Windows下80端口被進程System占用的解決方法

Windows下80端口被進程System占用的解決方法

mgr 效果 one style align 多說 控制 服務狀態 apache2

昨天剛更新了Windows10,總體上來說效果還是蠻不錯的,然而今天在開啟Apache服務器的時候卻發現,Apache莫名其妙的打不開了,起初以為是權限的問題,於是使用管理員身份的控制臺去調用命令net start Apache2.4,結果依然是無法打開。手動啟動服務報錯“Windows不能再本地計算機啟動Apache,有關更多信息,查閱系統時間日誌。如果這是非Microsoft服務,請與服務廠商聯系,並參考特定服務錯誤代碼1。”如下圖所示:

技術分享圖片

Windows不能再本地計算機啟動Apache,有關更多信息,查閱系統時間日誌。如果這是非Microsoft服務,請與服務廠商聯系,並參考特定服務錯誤代碼1。

看到這種情況,我有手動cd到Apache的httpd.exe的目錄,執行了一下httpd,這下原因找到了,如下圖所示:

技術分享圖片

(OS 10013)以一種訪問權限不允許的方式做了一個訪問套接字的嘗試。 : AH00072: make_sock: could not bind to address 127.0.0.1:80 AH00451: no listening sockets available, shutting down AH00015: Unable to open logs

從圖中可以看到錯誤的原因是套接字綁定錯誤,這下可以確定是Apache的80端口被占用了。於是就使用命令 netstat -ano 來查看一下到底是哪個程序占用了80端口,如圖所示端口查找的結果:

技術分享圖片

看到80端口被PID為4的System進程占用,呵呵,我想說一句我擦嘞什麽鬼+_+。仔細想了想,一般的程序不會占用80,遂使用命令 netsh http show servicestate 查看一下當前的http服務狀態,發現果然有問題,如下圖所示:

技術分享圖片

圖中可以看到,80端口被一個DefaultAppPool的東西占用了,如果用過IIS的童鞋,這時候肯定一定想到了原因,這裏我們依然要接著往下找原因,圖中可以看出控制器進程ID為4640,那麽就 就繼續查看一下4640進程是什麽鬼,進入任務管理器,找到PID4640的進程,右鍵轉到服務,可以看到當前的進程所在的服務,如圖所示:

技術分享圖片

技術分享圖片 看到圖中的服務,這裏原因也就找到了,IIS的World Wid Web Publishing Service 萬維網服務的問題。

解決方案:

控制面板–>程序–>啟用或者關閉Windows功能–>找到Internet Information Service,將其關閉即可

技術分享圖片

最近電腦時不時就發生了80端口被占用的情況,簡單百度解決後,當重啟電腦的時候又發生被占用的情況.今天非常幸運的是,發生了80端口和8080端口都被占用了情況,忍無可忍決定下定決心解決這個坑爹的問題,經過重新百度完美地解決了這個問題,下面貼出解決方法:

一:原文地址: http://www.2cto.com/os/201505/399603.html

我的占用原因是 SQL Server Reporting Services,停止掉這個服務並設置其為手動啟動即可

如果你並沒有安裝 SQL Server,請參考下文解決

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

突然發現 80 端口被莫名占用,咋一看還是 System 這個進程

又無法結束這貨,於是開始慢慢查看到底是什麽東西占用了

首先,打開 cmd 跑這一句,80 端口被System 占用,肯定是 HTTP 服務搞的鬼

?
1 netsh http show servicestate

看到 REPORTSERVER 略顯疑惑
技術分享圖片

我們繼續看,得到使用 80 端口的 PID了,還等什麽?開 taskmgr!(任務管理器)

技術分享圖片

任務管理器查看 PID 的方法:

技術分享圖片

上方在 cmd 中,我們得到 PID = 4212,現在我們看看是什麽東西在作怪

技術分享圖片

看到上圖的結果,恍然大悟!如果大家不確定那是一個什麽進程,我們對他右鍵 - 打開文件所在位置

技術分享圖片

這下大家應該都明白了吧。我這個占用的根本是 SQL Server 的報告服務

技術分享圖片

最後我去 services.msc 裏停止他並設置這個服務為手動就搞定了。

如何查看當前 80 端口占用情況:

?
1 netstat -ano | findstr 0.0.0.0:80

這段命令輸入後回車,中間無內容即表示無占用

二:原文地址:https://www.caogenjava.com/detail/75.html

今天筆者想在server2008服務器上用80端口跑個項目,但是系統提示80端口被占用,端口被占用這在開發過程中是常見的事情,查一下被誰占用了,幹掉他不就完了。一查不要緊,結果太詭異,使用netstat -ano命令查看,80端口被pid的為0的進程給占用了,用任務管理器一看,這個pid為0的進程竟然是系統閑置進程即system idle process,這個進程可是幹不掉的,於是乎一通百度。

首先在一篇百度文庫裏找到了一篇帖子,說的是被sqlserver數據庫給占用了,因為我那臺服務器確實也安裝了該數據庫,原以為就是它的原因,但是按照文章中的說明處理之後80端口還是被占用,重啟服務器之後依舊。那篇帖子地址是這個:《解決Windows Server 2008 System進程占用80端口》。

最終終於在其他帖子裏找到了答案,廢話不多說,直接上方案。

打開設備管理器,點擊菜單欄中的查看-->顯示隱藏設備,這時候你能看到非即插即用驅動程序,展開,找到HTTP,雙擊切換到驅動程序選項卡,將類型設為已禁用,確定,重啟系統。(註:理論上,你直接點停止也是可以的,但是我點擊之後系統總是卡死。禁用還是要設置的,否則系統重啟之後80又被占用了)

技術分享圖片

Windows下80端口被進程System占用的解決方法