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\
メモ : |
---|
Windows Vista で ServiceModel 登録ツールを実行している場合は、[Windows の機能] ダイアログ ボックスに、[Microsoft .NET Framework 3.0] の下にある [Windows Communication Foundation HTTP Activation] オプションが有効であることが反映されない場合があります。[Windows の機能] ダイアログ ボックスには、[スタート] ボタンをクリックし、[ファイル名を指定して実行] をクリックして、「OptionalFeatures」と入力することでアクセスできます。 |
次の表は、ServiceModelReg.exe で使用できるオプションを示します。
オプション | 説明 |
---|---|
-i |
このバージョンの WCF を登録し、インターネット インフォメーション サービス (IIS) メタベース ルートの ScriptMaps とそのルートの下のすべての ScriptMaps を更新します。下位バージョンの既存の ScriptMaps は、このバージョンにアップグレードされます。 |
-ir |
このバージョンの WCF (レジスタのみ) を登録します。WCF ScriptMaps は IIS にインストールされません。 |
-iru |
このバージョンの WCF を登録します。WCF を使用する既存のアプリケーションがあれば、IIS 内のそれらの ScriptMaps を更新しないでください。 |
-u |
このバージョンの WCF の登録を解除します。このバージョンの既存の ScriptMaps は、コンピュータにインストールされた WCF の現存する最上位のバージョンに再マップされます。 |
-ua |
コンピュータ上のすべてのバージョンの WCF の登録を解除します。 |
-r |
このバージョンの WCF を再登録し、IIS メタベース ルートの ScriptMaps とそのルートの下のすべての ScriptMaps を更新します。元のバージョンとは関係なく既存の ScriptMaps は、このバージョンにアップグレードされます。 |
-s:<path> |
このバージョンの WCF の ScriptMaps を指定されたパスで再帰的に登録します。 |
-sn:<path> |
このバージョンの WCF の ScriptMaps を指定されたパスで非再帰的に登録します。 |
-k:<path> |
任意のバージョンの WCF のすべての ScriptMaps を指定されたパスから再帰的に削除します。 |
-kn:<path> |
任意のバージョンの WCF のすべての ScriptMaps を指定されたパスから非再帰的に削除します。 |
-lv |
コンピュータに登録されているすべてのバージョンの WCF をステータスやインストール パスと共に一覧表示します。 |
-lk |
WCF ScriptMaps を示すすべての IIS メタベース キーのパスをバージョンと共に一覧表示します。WCF ScriptMaps を親キーから継承するキーは表示されません。 |
-vi |
対象となるコンポーネントのインストールを確認し、レポートを生成します。可能なコンポーネントの状態は、不明、未インストール、既定のインストール、またはカスタムのインストールです。 |
-y |
コンポーネントを登録または再登録する前の確認メッセージは表示しません。 |
-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 ツールの -s オプションと -k オプションの使用方法を示します。
ServiceModelReg.exe -s:W3SVC/1/ROOT/SampleApp1
ServiceModelReg.exe -k:W3SVC/1/ROOT/SampleApp1