此命令列工具提供管理單一機器上 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