解決System進程佔用80端口

     項目開發管理端後臺程序,要換成JFinal框架,在搭建Demo框架完成後,Run As 項目中的Config文件後,提示80端口被佔用。

    好了,問題簡單粗暴,解決80端口就OK了。

    真的簡單?Really粗暴?No! 下面是複雜的解決過程……


    1、先看看什麼是80端口,它和8080、8001等端口有何區別?

    80端口是爲HTTP(HyperText Transport Protocol)即超文本傳輸協議開放的,此爲上網衝浪使用次數最多的協議,主要用於WWW(World Wide Web)即萬維網傳輸信息的協議。可以通過HTTP地址(即常說的“網址”)加“:80”來訪問網站,因爲瀏覽網頁服務默認的端口號都是80,因此只需輸入網址即可,不用輸入“:80”了。--百度百科 

        也就是說,只要我們想上網,就必須開放80端口。在有的解決80端口被佔用的方案中,發現有的文章建議關閉Http Service,簡直是Kidding me……

        8080、8001等端口其實本質上沒什麼區別,而且它們本身無實際意義,只是用於代理服務器端口來代理服務,如tomcat、nginx、IIS等。大部分服務提供方都默認使用8080端口用於WWW代理服務,因此經常會發現8080端口被佔用的情況。但我們可以通過配置文件修改,如改成8001等。


        2、如何解決的端口占用?

        首先,看看到底是誰佔用了80端口:查看80端口占用方法。發現是System佔用了,System是什麼鬼?系統進程啊!

        頓時有些懵~ 好吧,繼續go,在任務管理器中找到System進程後,選中,結束進程,發現並沒有什麼效果。

        百度,在dos窗口結束該進程的方法,依然無效。後來查了一下System進程,發現他是Windows頁面內存管理進程,擁有0級優先權,沒有它系統無法啓動。 也就是說,System進程是無法關閉的,如果你強行結束system進程樹會直接導致藍屏。頭破血流過來的,您就不要試了吧~

       後來猜想可能是IIS佔用的,於是關閉了IIS中的應用,如圖:

                                             

       運行Eclipse下的demo,依然被佔用……

       後來朋波也遇到了這個問題,發現是SqlServer的Reporting Service佔用了這個端口,就停止了該報表服務。

                                                 

                                                                                                      

       然後運行Demo,就解決了這個問題,成功解除了80端口占用。

             

       對於Windows系統專用的,像IIS,或者微軟公司的產品,如SQLServer,感覺都怪怪的。他們雖然佔用了80端口,但在進程列表中並不顯示出來。

        

        3、後續……

        demo運行成功了,於是停止Eclipse對它的服務,然後引入實際的項目程序,再次運行發現還是80端口占用!!!

        好吧,已經無語了。

        於是繼續執行查看80端口的進程,發現是javaw.exe佔用了該端口。這次問題就比較明朗了,肯定是上面的demo佔用了80端口沒有釋放,於是刪除了demo,再執行項目就沒問題了,試了幾次都保持success。

        

        小結:解決這個問題的過程反映出我們分析和解決問題時要從多角度考慮:有那些解決思路:無腦百度、問題分析等。理清問題中的“節點”:如80端口是什麼、System進程是什麼、什麼運行環境下產生的問題。這樣我們就會做到遇事不亂、心中有數。

        

發佈了145 篇原創文章 · 獲贊 37 · 訪問量 33萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章