Windows Server 2003 + IIS 6.0 環境,手動啟動 WWW 服務時彈出:「位址被佔用,啟動失敗!」,導致 IIS 無法啟動。
| 原因 | 說明 | 可能性 |
|---|---|---|
| IIS 核心檔案損壞/遺失 | 關鍵 DLL、Metabase.xml 損毀 | ⭐⭐⭐ 高 |
| 埠 80 被其他程序佔用 | Skype、Apache、Nginx、TeamViewer 等佔用 80 埠 | ⭐⭐ 中 |
| 記憶體硬體錯誤 | RAM 損壞導致系統服務異常 | ⭐ 低 |
| SSL 憑證綁定衝突 | 多站點 443 埠無 SNI 支援下衝突 | ⭐⭐ 中 |
netstat -ano | findstr :80
# 找出 PID,再用 tasklist 確認進程名稱
tasklist | findstr "PID號"
System (PID 4) 佔用 → 可能為 IIS 自身殘留、HTTP.sys 驅動問題services.msc
# 確認以下服務狀態
World Wide Web Publishing Service (W3SVC)
IIS Admin Service
HTTP SSL Service (若用 HTTPS)
⚠ 操作前請備份
%windir%\system32\inetsrv\MetaBase.xml(IIS 設定檔)
https://localhost/ 確認預設頁面cscript adsutil.vbs restore 或手動合併關鍵設定netsh http show servicestate 檢查 URL ACL、netsh http delete urlacl url=https://+:80/ 清理殘留預約netsh http show sslcert 確認 IP:Port 對應唯一sfc /scannow 修復系統核心檔案mdsched.exe Windows 記憶體診斷工具核心結論:90% 以上「位址被佔用」實為 IIS 組件損壞或 Metabase 損毀,重裝 IIS 為最快有效修復路徑。若重裝無效,再深入排查 HTTP.sys、埠佔用、硬體層面。