錯誤現象
Windows Vista/Server 2008 啟動 IIS 7 時,事件記錄或管理主控台顯示 0x8ffe2740,服務無法啟動。
根因
TCP 埠 80 已被佔用。常見佔用程式:
- Skype、TeamViewer 等 VoIP/遠端軟體
- Apache、Nginx、Tomcat 等其他 Web 伺服器
- SQL Server Reporting Services (SSRS)
- Windows 遠端管理 (WinRM) / HTTP.sys 核心驅動保留
排查指令
netstat -ano | findstr :80
找出 PID,再用 tasklist | findstr 確認進程名稱。
解決方案
- 變更衝突程式埠口(如 Skype 設定 → 取消「使用埠 80/443」)。
- 停用/移除不需的服務(如 SSRS、WinRM)。
- 修改 IIS 繫結埠:IIS 管理員 → 網站 → 右鍵「編輯繫結」→ 將 HTTP 埠改為 8080 或其他。
- 重新啟動 IIS:`iisreset /restart` 或服務管理員重啟「World Wide Web Publishing Service」。
最佳實務
- 生產環境建議規劃專用埠口,避免預設 80/443 衝突。
- 使用 `netsh http show urlacl` 檢查 HTTP.sys URL 保留清單。
- 部署自動化腳本於啟動序列中檢查埠口佔用並預警。