萬盛學電腦網

您现在的位置: 萬盛學電腦網 >> 作業系統 >  >> Windows XP 教學

IIS 啟動失敗錯誤 2147500034 (0x80004002) 完整排解指南

許多在 Windows Server 2003 環境下進行 Web 開發測試的使用者,都曾遭遇 IIS(Internet Information Services)無法啟動的困擾。事件檢視器中反覆出現「World Wide Web Publishing 服務在請求配置資料庫更改通知時遇到問題」、「初始化配置管理器時出錯」,最終以「服務因 2147500034 (0x80004002) 服務性錯誤而停止」收尾。這通常是因為關鍵 COM 元件未正確註冊,導致 IIS 核心服務無法載入設定資料庫。

錯誤徵狀快速辨識

  • 服務管理員中「World Wide Web Publishing Service」顯示「已停止」,手動啟動立即失敗。
  • 系統事件日誌記錄 Event ID 1000、1001 等,錯誤碼為 0x80004002(E_NOINTERFACE,介面不支援)。
  • 重裝 SP1 後問題依舊,排除權限、防火牆、連接埠衝突等常見因素無效。

根本原因分析

Windows Server 2003 升級 Service Pack 或安裝特定安全更新後,部分系統 DLL(如 shell32.dll、mshtml.dll、urlmon.dll 等)版本號雖已更新,但其內部的 COM 介面註冊資訊未同步寫入登錄,導致 IIS 呼叫 IClassFactory 時找不到對應介面,拋出 0x80004002。

標準修復步驟:批次註冊核心 DLL

  1. 以系統管理員身分開啟「命令提示字元」。
  2. 依序執行下列指令(每行結束按 Enter):
regsvr32 %windir%\system32\shell32.dll
regsvr32 %windir%\system32\browseui.dll
regsvr32 %windir%\system32\mshtml.dll
regsvr32 %windir%\system32\oleaut32.dll
regsvr32 %windir%\system32\ole32.dll
regsvr32 %windir%\system32\actxprxy.dll
regsvr32 %windir%\system32\urlmon.dll
regsvr32 %windir%\system32\shdocvw.dll
  1. 全部顯示「DllRegisterServer 成功」對話框後,輸入 iisreset /restart 重啟 IIS 服務。
  2. 若仍失敗,檢查 %windir%\system32\inetsrv\MetaBase.xml 是否存在且權限正確(Administrators / SYSTEM 完整控制)。

進階補充方案

  • 修復 ASP.NET 註冊:執行 %windir%\Microsoft.NET\Framework\v1.1.4322\aspnet_regiis.exe -i(依實際 .NET 版本調整路徑)。
  • 檢查 Metabase 相容性:在 IIS 管理員右鍵伺服器 → 「內容」→ 「啟用 Direct Metabase Edit」打勾,儲存後再試啟動。
  • 系統檔案檢查:執行 sfc /scannow 修復可能受損的系統檔案。

預防建議

生產環境安裝更新前先備份 Metabase(iisback 指令或匯出組態),並在測試機驗證後再部署;定期執行 dism /online /cleanup-image /restorehealth(適用於更新版本 Windows)維護元件存儲完整性。

copyright © 萬盛學電腦網 all rights reserved