共用方式為


ServiceModel 註冊工具 (ServiceModelReg.exe)

此命令列工具提供管理單一機器上 WCF 與 WF 元件註冊的能力。 在正常情況下,你不需要使用這個工具,因為安裝時 WCF 和 WF 元件都是設定好的。 但如果你遇到服務啟用問題,可以嘗試用這個工具註冊元件。

語法

ServiceModelReg.exe[(-ia|-ua|-r)|((-i|-u) -c:<command>)] [-v|-q] [-nologo] [-?]

備註

該工具可在以下地點找到:

%SystemRoot%\Microsoft.Net\Framework\v3.0\Windows 通訊基金會\

備註

當 ServiceModel 註冊工具在 Windows Vista 上執行時,Windows 功能對話框可能不會顯示 Microsoft .NET Framework 3.0 下的 Windows 通訊基礎 HTTP 啟用選項已開啟。 可透過點擊開始、執行,再輸入 OptionalFeatures,進入 Windows 功能對話框。

以下表格描述可用於 ServiceModelReg.exe的選項。

Option Description
-ia 安裝所有 WCF 和 WF 元件。
-ua 卸載所有 WCF 和 WF 元件。
-r 維修所有WCF和WF零件。
-i 安裝以 -c 標示的 WCF 與 WF 元件。
-u 移除以 -c 標示的 WCF 與 WF 元件。
-c 安裝或卸載元件:

- httpnamespace – HTTP 命名空間保留
- tcpportsharing – TCP 埠共享服務
- tcpactivation – TCP 啟用服務(.NET 4 用戶端設定檔不支援)
- namedpipeactivation – 命名管道啟用服務(.NET 4 用戶端設定檔不支援)
- msmqactivation – MSMQ 啟用服務(.NET 4 用戶端設定檔不支援)
- etw – ETW 事件追蹤清單(Windows Vista 或更新版本)
-q 靜音模式(僅顯示錯誤記錄)
-v 詳細資訊模式。
-nologo 會抑制版權和橫幅訊息。
-? 顯示說明文字

修正 FileLoadException 錯誤

如果你在機器上安裝過先前版本的 WCF,當你執行 ServiceModelReg 工具註冊新安裝時,可能會收到 FileLoadFoundException 錯誤。 即使你手動移除了之前安裝的檔案,但保留了 machine.config 設定,這種情況也可能會發生。

錯誤訊息與以下類似。

Error: System.IO.FileLoadException: Could not load file or assembly 'System.ServiceModel, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089' or one of its dependencies. The located assembly's manifest definition does not match the assembly reference. (Exception from HRESULT: 0x80131040)
File name: 'System.ServiceModel, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089'

你應該從錯誤訊息中注意到,System.ServiceModel 版本 2.0.0.0 組合是早期客戶技術預覽版(CTP)版本安裝的。 目前釋出的 System.ServiceModel 組合檔版本改為 3.0.0.0。 因此,當你想在安裝了早期 CTP 版本但未完全卸載的機器上安裝官方 WCF 版本時,會遇到這個問題。

ServiceModelReg.exe 無法清理先前版本的條目,也無法登錄新版本的條目。 唯一的解決方法是手動編輯 machine.config。您可以在以下地點找到此檔案。

%windir%\Microsoft.NET\Framework\v2.0.50727\config\machine.config

如果你是在 64 位元機器上執行 WCF,也應該在此處編輯相同的檔案。

%windir%\Microsoft.NET\Framework64\v2.0.50727\config\machine.config

找出此檔案中任何指向「System.ServiceModel, Version=2.0.0.0」的 XML 節點,刪除它們及所有子節點。 儲存檔案後重執行 ServiceModelReg.exe 解決了這個問題。

範例

以下範例說明如何使用 ServiceModelReg.exe 工具最常見的選項。

ServiceModelReg.exe -ia
  Installs all components
ServiceModelReg.exe -i -c:httpnamespace -c:etw
  Installs HTTP namespace reservation and ETW manifests
ServiceModelReg.exe -u -c:etw
  Uninstalls ETW manifests
ServiceModelReg.exe -r
  Repairs an extended install