Pages

2012-04-02

IIS6無法啟動,誰佔走了80 Port?

通常重要Server伺服器我不會隨時作Windows Update,因為怕有衝突風險。總是等待一陣子發現沒啥大災難傳出,才一次更新到足。某天我作了這樣「一次到位」的更新,重開機後發現Windows 2003裏的IIS 6.0服務無法啟動,原因是80埠被佔走了!!
WWW Start Failed

首先嘗試「telnet localhost 80」確認有個Unknown TCP Listener在運作,接著我使用「netstat -abn」指令及「TCP View」工具查詢目前網路Port號所綁定的PID,但這Listener完全隱身找不到。接著開始展開耗時痛苦的Google爬文工程,舉凡會佔80埠的程式(如Skype, TeamViewer, Reporting Service, Apache…」都翻了一遍,仍無所獲。

這完全是很奇怪的現象,到底是啥佔住了80埠?我一開始也有看到這篇「Event 1363 iis www service not starting」的討論串,它指出微軟更新「KB980436」有問題,不過它的發行日期是2010/08/09,比該主機年紀還老,而且隔那麼久若有此衝突,微軟豈有不更新道理?直到我看到這篇文章「IIS無法啟動——鬱悶的KB939373補丁」,文末它提到「理論上這個補丁不是給大家帶來麻煩的,可是問題卻在很多機器上出現」,我開始覺得也許真是遇到此問題了!

無計可施下,只好開始執行這種屬於「自殘行為」移除更新的作法。文中的Update編號在系統裏找不到,猜是Win2003 R2版本更新關係,不過同理類推,就拿編號KB980436開刀吧! 移除後重新開機,問題解決!!

結局一句很短,但耗盡了一天及壓力跟這種怪現象纏鬥。問題暫時解決了,也歸納出一個教訓結論,即Win2003畢竟屬於老舊系統了,打補丁的更新方式終會造成怪問題產生,以後還是直接安裝Windows 2008比較好。

No comments: