在 Windows Vista 上透過「開啟或關閉 Windows 功能」安裝 IIS 7 時,頻繁遇到錯誤訊息:「出現錯誤,並非所有的功能被成功更改」 (An error has occurred. Not all of the features were successfully changed!)。即使以管理員身分執行、關閉防毒軟體、關閉系統保護,問題依舊。根本原因在於 Windows Process Activation Service (WAS) 服務殘留。本文提供經驗證的完整解決方案。
https://localhost,應顯示 IIS 7 預設歡迎頁面。正常的元件依賴關係應由安裝程式自動處理:安裝 IIS 時自動安裝 WAS,移除 IIS 時若無其他元件依賴 WAS 則自動移除 WAS。但 Vista 的元件安裝邏輯缺陷導致移除 IIS 時不檢查 WAS 依賴關係,造成 WAS 成為「孤兒服務」,後續重裝失敗。這在 Vista RTM/SP1 中普遍存在,Win 7 已改善。
pkgmgr /iu:IIS-WebServerRole;IIS-WebServer;IIS-CommonHttpFeatures;IIS-StaticContent;IIS-DefaultDocument;IIS-DirectoryBrowsing;IIS-HttpErrors;IIS-HttpRedirect;IIS-ApplicationDevelopment;IIS-ASPNET;IIS-NetFxExtensibility;IIS-ASP;IIS-CGI;IIS-ISAPIExtensions;IIS-ISAPIFilter;IIS-ServerSideIncludes;IIS-HealthAndDiagnostics;IIS-HttpLogging;IIS-LoggingLibraries;IIS-RequestMonitor;IIS-HttpTracing;IIS-CustomLogging;IIS-ODBCLogging;IIS-Security;IIS-BasicAuthentication;IIS-WindowsAuthentication;IIS-DigestAuthentication;IIS-ClientCertificateMappingAuthentication;IIS-IISCertificateMappingAuthentication;IIS-URLAuthorization;IIS-RequestFiltering;IIS-IPSecurity;IIS-Performance;IIS-HttpCompressionStatic;IIS-HttpCompressionDynamic;IIS-WebServerManagementTools;IIS-ManagementConsole;IIS-ManagementScriptingTools;IIS-ManagementService;IIS-IIS6ManagementCompatibility;IIS-Metabase;IIS-WMICompatibility;WAS-WindowsActivationService;WAS-ProcessModel;WAS-NetFxEnvironment;WAS-ConfigurationAPIsfc /scannow 修復可能損毀的系統檔案。C:\Windows\Logs\CBS\CBS.log 記錄詳細安裝失敗原因,可搜尋 "ERROR" 關鍵字分析。Vista 安裝 IIS 7 失敗 90% 以上是因為 WAS 服務殘留。關鍵口訣:移除 IIS 必須同時移除 WAS → 重開機 → 重新同時安裝 IIS 與 WAS。此法經大量使用者驗證,成功率極高。