Share via


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(ja-jp,VS.90).gifメモ :
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