許多在 Windows Server 2003 環境下進行 Web 開發測試的使用者,都曾遭遇 IIS(Internet Information Services)無法啟動的困擾。事件檢視器中反覆出現「World Wide Web Publishing 服務在請求配置資料庫更改通知時遇到問題」、「初始化配置管理器時出錯」,最終以「服務因 2147500034 (0x80004002) 服務性錯誤而停止」收尾。這通常是因為關鍵 COM 元件未正確註冊,導致 IIS 核心服務無法載入設定資料庫。
Windows Server 2003 升級 Service Pack 或安裝特定安全更新後,部分系統 DLL(如 shell32.dll、mshtml.dll、urlmon.dll 等)版本號雖已更新,但其內部的 COM 介面註冊資訊未同步寫入登錄,導致 IIS 呼叫 IClassFactory 時找不到對應介面,拋出 0x80004002。
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
iisreset /restart 重啟 IIS 服務。%windir%\system32\inetsrv\MetaBase.xml 是否存在且權限正確(Administrators / SYSTEM 完整控制)。%windir%\Microsoft.NET\Framework\v1.1.4322\aspnet_regiis.exe -i(依實際 .NET 版本調整路徑)。sfc /scannow 修復可能受損的系統檔案。生產環境安裝更新前先備份 Metabase(iisback 指令或匯出組態),並在測試機驗證後再部署;定期執行 dism /online /cleanup-image /restorehealth(適用於更新版本 Windows)維護元件存儲完整性。