對安裝問題進行疑難排解

本文說明如何對 Windows Communication Foundation (WCF) 安裝問題進行疑難排解。

有些 Windows Communication Foundation 登錄機碼 (Registry Key) 無法藉由在 .NET Framework 3.0 上執行 MSI 修復作業來加以修復。

如果您刪除下列任何登錄機碼:

  • HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\ServiceModelService 3.0.0.0

  • HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\ServiceModelOperation 3.0.0.0

  • HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\ServiceModelEndpoint 3.0.0.0

  • HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\SMSvcHost 3.0.0.0

  • HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\MSDTC Bridge 3.0.0.0

如果您使用從主控台 的[新增/移除程式] 小程式啟動的 .NET Framework 3.0 安裝程式執行修復,則不會重新建立金鑰。 若要正確地重新建立這些機碼,使用者必須解除安裝並重新安裝 .NET Framework 3.0。

WMI 服務損毀導致 WMI 提供者無法安裝

安裝 .NET Framework 3.0 套件時,WMI 服務損毀可能會封鎖安裝 Windows Communication Foundation WMI 提供者。 在安裝期間,Windows Communication Foundation 安裝程式無法使用 mofcomp.exe 元件來註冊 WCF .mof 檔案。 可能徵兆如下所示:

  1. .NET Framework 3.0 安裝成功完成,不過 WCF WMI 提供者並未註冊。

  2. 應用程式記錄檔中顯示關於在註冊 WCF 的 WMI 提供者、或執行 mofcomp.exe 時所發生問題的錯誤事件。

  3. 在使用者的 %temp% 目錄中名為 dd_wcf_retCA* 的安裝記錄檔,包含了無法註冊 WCF WMI 提供者的相關資訊。

  4. 在事件記錄檔或安裝追蹤記錄檔中,可能會列出下列其中一個例外狀況 (Exception):

    ServiceModelReg [11:09:59:046]: System.ApplicationException: 以 "E:\WINDOWS\Microsoft.NET\Framework\v3.0\Windows Communication Foundation\ServiceModel.mof" 執行 E:\WINDOWS\system32\wbem\mofcomp.exe 時產生未預期的結果 3

    或者:

    ServiceModelReg [07:19:33:843]: System.TypeInitializationException: 'System.Management.ManagementPath' 的型別初始設定式發生例外狀況。 ---> System.Runtime.InteropServices.COMException (0x80040154):由於發生下列錯誤,為具有 CLSID {CF4CC405-E2C5-4DDD-B3CE-5E7582D8C9FA} 的元件擷取 COM 類別處理站時失敗:80040154。

    或者:

    ServiceModelReg [07:19:32:750]: System.IO.FileNotFoundException: 無法載入檔案或組件 'C:\WINDOWS\system32\wbem\mofcomp.exe' 或其相依性的其中之一。 系統找不到指定的檔案。

    檔案名稱:'C:\WINDOWS\system32\wbem\mofcomp.exe

您必須遵循下列步驟才能解決上述問題。

  1. 執行 WMI 診斷公用程式以修復 WMI 服務。 如需關於使用此工具的詳細資訊,請參閱 WMI 診斷公用程式

使用位於主控台[新增/移除程式] 小程式來修復 .NET Framework 3.0 安裝,或卸載/重新安裝 .NET Framework 3.0。

.NET Framework 3.5 安裝之後修復 .NET Framework 3.0

如果您在安裝 .NET Framework 3.5 之後修復 .NET Framework 3.0,則會移除machine.config中 .NET Framework 3.5 引進的組態元素。 不過,web.config 檔案會保持不變。 因應措施是透過 ARP 修復.NET Framework 3.5,或使用WorkFlow 服務註冊工具 (WFServicesReg.exe) 參數 /c

WorkFlow 服務註冊工具 (WFServicesReg.exe) 位於 %windir%\Microsoft.NET\framework\v3.5\ 或 %windir%\Microsoft.NET\framework64\v3.5\

在安裝 .NET Framework 3.5 之後,適當地為 WCF/WF Webhost 設定 IIS

.NET Framework 3.5 安裝無法設定其他 WCF 相關的 IIS 組態設定時,它會在安裝記錄檔中記錄錯誤並繼續。 任何執行 WorkflowServices 應用程式的嘗試都將失敗,因為缺少必要的組態設定。 例如,無法載入 xoml 或規則服務。

若要解決此問題,請使用 WorkFlow 服務註冊工具 (WFServicesReg.exe) 搭配 /c 參數,以適當設定機器上的 IIS 指令碼對應。 WorkFlow 服務註冊工具 (WFServicesReg.exe) 位於 %windir%\Microsoft.NET\framework\v3.5\ 或 %windir%\Microsoft.NET\framework64\v3.5\

無法載入型別 'System.ServiceModel.Activation.HttpModule'

無法從組件 'System.ServiceModel, Version 3.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089' 載入型別 'System.ServiceModel.Activation.HttpModule'

如果已安裝 .NET Framework 4,然後啟用 WCF HTTP 啟用,就會發生此錯誤。 若要解決此問題,請從 Visual Studio 的開發人員命令提示字元內執行下列命令:

aspnet_regiis.exe -i -enable