共用方式為


ServiceModel 註冊工具 (ServiceModelReg.exe)

這個命令列工具可以讓您在單一電腦上管理 ServiceModel 的註冊。

ServiceModelReg.exe [-i[r | ru] | -u | -ua | -r | -s:<path> | -sn:<path> | -k:<path> | -kn:<path> | -lv | -lk | -vi] [-q | -v] [-nologo] [-?]

備註

您可以在下列位置找到這個工具:

%SystemRoot%\Microsoft.Net\Framework\v3.0\Windows Communication Foundation\

ms732012.note(zh-tw,VS.100).gif注意:
ServiceModel 註冊工具在 Windows Vista 上執行時,[Windows 功能] 對話方塊不會反映 [Microsoft .NET Framework 3.0] 下的 [Windows Communication Foundation HTTP 啟動] 選項已開啟。按一下 [開始],然後按一下 [執行],再輸入 OptionalFeatures,即可存取 [Windows 功能] 對話方塊。

下表說明可與 ServiceModelReg.exe 搭配使用的選項。

選項 描述

-i

註冊這個版本的 WCF,並更新網際網路資訊服務 (IIS) Metabase 根目錄處的 Scriptmap,和根目錄下的所有 Scriptmap。較低版本的現有 Scriptmap 會升級至這個版本。

-ir

註冊這個版本的 WCF,僅註冊。不要在 IIS 中安裝 WCF Scriptmap。

-iru

註冊這個版本的 WCF。如果有任何現有應用程式使用 WCF,請勿在 IIS 中更新其 Scriptmap。

-u

移除註冊這個版本的 WCF。這個版本的現有 Scriptmap 會重新對應至電腦上所安裝其他 WCF 版本中的最高版本。

-ua

移除註冊電腦上所有版本的 WCF。

-r

重新註冊這個版本的 WCF,並更新網際網路資訊服務 (IIS) Metabase 根目錄處的 Scriptmap,和根目錄下的所有 Scriptmap。現有 Scriptmap 會升級至這個版本,無論原始版本為何。

-s:<path>

以遞迴的方式在指定路徑註冊這個版本 WCF 的 Scriptmap。

-sn:<path>

以非遞迴的方式在指定路徑註冊這個版本 WCF 的 Scriptmap。

-k:<path>

以遞迴的方式從指定路徑移除任何版本 WCF 的所有 Scriptmap。

-kn:<path>

以非遞迴的方式從指定路徑移除任何版本 WCF 的所有 Scriptmap。

-lv

列出電腦上註冊的所有版本 WCF,以及狀態和安裝路徑。

-lk

列出 WCF 由指令碼對應的所有 IIS Metabase 索引鍵的所有路徑,並列出其版本。從父索引鍵繼承 WCF Scriptmap 的索引鍵不會顯示。

-vi

驗證目標元件的安裝,並產生報告。元件可能處於下列狀態:不明、尚未安裝、已安裝 (預設) 或已安裝 (自訂)。

-y

在註冊或重新註冊元件前,不要求確認。

-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'

您會在錯誤訊息中發現,先前發行的 Customer Technology Preview (CTP) 安裝了 System.ServiceModel Version 2.0.0.0 組件。System.ServiceModel 組件目前的版本是 3.0.0.0。因此,當您要在已安裝舊版 CTP WCF 的電腦上安裝 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 工具的 -s-k 選項。

ServiceModelReg.exe -s:W3SVC/1/ROOT/SampleApp1
ServiceModelReg.exe -k:W3SVC/1/ROOT/SampleApp1