Windows XP Windows 7 Windows 2003 Windows Vista Windows 綜合教學 Linux 系統教學
Windows 10 Windows 8 Windows 2008 Windows NT Windows Server 電腦軟體教學
您现在的位置: Windows教程網 >> Windows教程 >  >> 電腦軟體教學 >> 伺服器技術 >> 關於伺服器

80 端口被神秘佔用?一例 IIS 7.5 Express 衝突排查全記錄

編輯:關於伺服器

故障現場

  • 症狀:網站打不開,懷疑 80 端口被佔,但 netstat -an 未見 80 監聽,任務管理器無異常進程,事件日誌乾淨。
  • 環境:Windows Server,已安裝 IIS(完整版)。

排查邏輯鏈

  1. 查事件日誌 → 無報錯。
  2. tasklist / svchost 審視 → 無可疑進程。
  3. netstat -ano | findstr :80 → 端口實際未被佔用(關鍵線索:端口空閒但網站不工作)。
  4. 轉向 IIS 自身:嘗試重裝 IIS → 發現「新增/移除程式」中赫然列著 IIS 7.5 Express。

根因揭秘

IIS 完整版 + IIS Express 共存 = 衝突。雙同屬微軟 IIS 家族,共用核心組件(WAS、W3SVC)、註冊表鍵值、預設網站綁定。Express 版雖為輕量開發版,但安裝時會註冊 URL ACL、佔用 80 端口預留、修改 applicationHost.config,導致完整版 IIS 啟動失敗、工作進程無法啟動、網站無法服務——卻不顯式佔用 80 端口、不寫錯誤日誌、不顯示進程,極具迷惑性。

修復步驟

  1. 控制台 → 程式和功能 → 開啟或關閉 Windows 功能 → 取消勾選「Internet Information Services」(若由 Express 破壞,建議先關閉再開啟)。
  2. 程式和功能 → 解除安裝「IIS 7.5 Express」(及關聯的 SQL Server Compact、Web Deploy 等)。
  3. 重啟伺服器(關鍵:釋放殘留的 URL ACL、共享記憶體、註冊表鎖)。
  4. 驗證:iisreset、瀏覽器訪問站點、netstat -ano | findstr :80 確認 `w3wp.exe` 正常監聽。

避坑指南

誤區正確認知
以為只有顯式佔用 80 才算衝突URL ACL、命名管道、註冊表、WAS 共享記憶體皆可造成隱性衝突
Express 只是開發工具,不影響生產 IISExpress 安裝會修改機器級配置,直接影響完整版 IIS 運行
重啟 IIS 服務即可恢復必須重啟 OS,才能清理核心物件與 ACL

延伸:如何檢測隱性端口/URL 衝突

# 查看 URL ACL 預留
netsh http show urlacl

# 查看 HTTP.SYS 監聽狀態
netsh http show servicestate

# 查看進程載入模組(需 Sysinternals)
listdlls -d w3wp.exe

總結

「端口未佔用但服務不工作」是HTTP.SYS 層面衝突的典型特徵。生產環境嚴禁安裝 IIS Express、Visual Studio、SQL Express 等開發組件。若必須共存,請用容器(Docker/Hyper-V)隔離。排查口訣:日誌無錯 → 端口無佔 → 進程無異 → 查共存組件 → 重啟 OS。

Copyright © Windows教程網 All Rights Reserved