筆者長期使用 Windows 2000 Server 搭配 IIS 架設 ASP 網站。為了跟上技術潮流,近期升級至 Windows Server 2003。雖然靜態 HTML 頁面與大多數 ASP 程式運行正常,但個別 ASP 頁面卻拋出「HTTP 500 內部伺服器錯誤」(如圖1所示),讓人困惑不已:難道 IIS 6.0 的效能反而不如舊版?

圖1:HTTP 500 內部伺服器錯誤示意圖
面對模糊的 500 錯誤,許多網管會一頭霧水。幸好這些 ASP 程式在 Win2000 下正常運作,可排除程式碼本身的問題,將焦點鎖定在 IIS 設定上。在搜尋相關資料時,筆者注意到 IIS 內建的「活動日誌」可能記錄更詳細的錯誤資訊,決定深入探索。

圖2:站點屬性頁面啟用日誌記錄
啟用活動日誌後,重現錯誤並檢視日誌內容,通常能發現具體的錯誤代碼(如 ASP 0113、0126 等)或 COM+ 元件失敗訊息,進而針對性修復權限、元件註冊或應用程式集區設定問題。這比盲目搜尋「HTTP 500」關鍵字有效得多。
IIS 活動日誌是排查 500 錯誤的「聽診器」。遷移伺服器環境時,善用內建日誌功能,往往能事半功倍地找出相容性問題的根本原因。