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 Communication Foundation\
Note
Windows Vista で ServiceModel 登録ツールを実行している場合は、 [Microsoft .NET Framework 3.0] の下にある [Windows Communication Foundation HTTP アクティブ化] オプションがオンになっていることが [Windows の機能] ダイアログに反映されないことがあります。 [Windows の機能] ダイアログには、 [スタート] ボタンをクリックし、 [ファイル名を指定して実行] をクリックして、 「OptionalFeatures」 と入力することでアクセスできます。
次の表は、ServiceModelReg.exe で使用できるオプションを示します。
オプション | 説明 |
---|---|
-ia |
WCF および WF のすべてのコンポーネントをインストールします。 |
-ua |
WCF および WF のすべてのコンポーネントをアンインストールします。 |
-r |
WCF および WF のすべてのコンポーネントを修復します。 |
-i |
-c で指定された WCF および WF のコンポーネントをインストールします。 |
-u |
-c で指定された WCF および WF のコンポーネントをアンインストールします。 |
-c |
コンポーネントをインストールまたはアンインストールします。 - httpnamespace – HTTP 名前空間の予約 - tcpportsharing – TCP ポートの共有サービス - tcpactivation – アクティベーション サービス (.NET 4 クライアント プロファイルでは非サポート) - namedpipeactivation – 名前付きパイプ アクティベーション サービス (.NET 4 クライアント プロファイルでは非サポート - msmqactivation – MSMQ アクティベーション サービス (.NET 4 クライアント プロファイルでは非サポート - etw – ETW イベントの追跡マニフェスト (Windows Vista 以降) |
-q |
Quiet モード (エラー ログのみ表示) |
-v |
Verbose モード |
-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 Version 2.0.0.0 アセンブリが旧 CTP (Customer Technology Preview) リリースによってインストールされていたというエラー メッセージに注目する必要があります。 最新バージョンの System.ServiceModel アセンブリは、2.0.0.0 ではなく 3.0.0.0 です。 したがって、旧 CTP リリースの WCF がインストールされたままで、完全にはアンインストールされていないコンピューターに正式の WCF リリースをインストールすると、この問題が発生します。
ServiceModelReg.exe は、旧バージョンのエントリをクリーンアップすることも、新しいバージョンのエントリを登録することもできません。 唯一の回避策は、machine.config を手動で編集することです。このファイルは次の場所にあります。
%windir%\Microsoft.NET\Framework\v2.0.50727\config\machine.config
WCF を 64 ビット コンピューターで実行している場合は、次の場所にある同じファイルも編集する必要があります。
%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