WCF のテスト用クライアント (WcfTestClient.exe)
Windows Communication Foundation (WCF) のテスト クライアント (WcfTestClient.exe) は、テスト パラメーターを入力し、その入力をサービスに送信して、サービスから返される応答を表示できる GUI ツールです。 WCF サービス ホストと組み合わせて使用すると、サービスをシームレスにテストできるようになります。
通常、WCF テスト クライアント (WcfTestClient.exe) は次の場所にあります: C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\Common7\IDE
- Community は、インストールされている Visual Studio のレベルに応じて、"Enterprise"、"Professional"、または "Community" のいずれかになります。
テスト用クライアントを使用するシナリオ
以下のセクションで、WCF テスト クライアントを使用して開発プロセスを効率化できる最も一般的なシナリオについて説明します。
Visual Studio 内
WCF サービス ホストが、1 つのサービスを使用する WCF のテスト用クライアントを開始する
新しい WCF サービス プロジェクトを作成し、F5 キーを押してデバッガーを起動すると、WCF サービス ホストがプロジェクトのサービスのホストを開始します。 その後、WCF テスト クライアントが開き、構成ファイルに定義されているサービス エンドポイントの一覧が表示されます。 ユーザーは、パラメーターをテストしてサービスを呼び出すことができ、このプロセスを繰り返して、サービスのテストおよび検証を継続的に行うことができます。
WCF サービス ホストが、複数のサービスを使用する WCF のテスト用クライアントを開始する
WCF テスト クライアントは、複数のサービスを含むサービス プロジェクトをデバッグするためにも使用できます。 WCF テスト クライアントは、開始されると、プロジェクトのサービスのリストを自動的に反復処理し、テストするためにそれらを開きます。
Visual Studio の外部
WCF テスト クライアント (WcfTestClient.exe) を Visual Studio の外部で呼び出して、インターネット上の任意のサービスをテストすることもできます。 このツールを見つけるには、次の場所に移動します。
C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\Common7\IDE
(Community は、マシンにインストールされている Visual Studio のレベルに応じて、"Enterprise"、"Professional"、または "Community" のいずれかになります)
ツールを使用するには、ファイル名をダブルクリックしてこの場所からツールを開くか、コマンド ラインからツールを起動します。
WCF テスト クライアントは、任意の数の URI をコマンド ライン引数として受け取ります。 これらの引数には、テストできるサービスの URI を指定します。
wcfTestClient.exe URI1 URI2 …
[WCF テスト クライアント] ウィンドウが開いたら、[ファイル] ->[サービスの追加] をクリックし、開くサービスのエンドポイント アドレスを入力します。
WCF のテスト用クライアントのユーザー インターフェイス
1 つのサービスまたは複数のサービスを使用する WCF テスト クライアントを使用できます。
サービス操作
WCF テスト クライアントのメイン ウィンドウの左ペインには、使用できるすべてのサービスが、それぞれのエンドポイントおよび操作と共に表示されます。
操作をダブルクリックすると、その操作の名前が付いた新しいタブ内の右ペインで、操作の内容を表示できます。
左ペインには、クライアントの構成ファイルも表示されます。 いずれかの項目をダブルクリックすると、右ペインの新しいタブ付きウィンドウにファイルの内容が表示されます。
テスト パラメーターの入力
テスト パラメーターを表示するには、右ペインで操作をダブルクリックして開きます。 既定では、パラメーターは [書式付き] ビューで表示されます。サービスをテストするためのパラメーターに任意の値を入力できます。
メッセージの XML を表示するには、 [XML] をクリックします。 それらをサービスに送信するには、 [起動] をクリックします。
DataSet パラメーターの場合、[編集…] の横にある […] ボタンをクリックして、DataGrid が表示されている新しいウィンドウで編集します。 [DataSet のコピー] ボタンおよび [DataSet の貼り付け] ボタンが表示されることに注意してください。 最初の編集時に DataSet オブジェクトのスキーマが不明の場合、DataGrid は空になります。 スキーマが同じ DataSet オブジェクトを DataGrid の現在のオブジェクトに貼り付ける必要があります (スキーマは、貼り付け操作の前に別の場所からコピーする必要があることに注意してください。) [DataSet のコピー] ボタンをクリックすることでも、将来使用する Dataset オブジェクトをコピーできます。
サービスの応答がテスト パラメーターの下に表示されます。
Note
想定される戻り値が文字列の場合、入力が引用符で囲まれていなくても、結果は引用符で囲まれた文字列として表示されます。
サービスのコントラクトの作成時に特定の操作を一方向として指定した場合は、サービスの応答は表示されません。 メッセージが配信のキューに置かれると、メッセージが正常に送信されたことを通知するダイアログ ボックスがすぐに表示されます。
セッション サポート
サービス操作のタブにある [新しいプロキシを開始する] チェック ボックスを使用すると、セッション サポートを切り替えることができます。 既定では、このチェック ボックスはオフになります。
特定の操作 (または同じサービス エンドポイントの別の操作) に対するテスト パラメーターを入力し、チェック ボックスがオフの状態で [起動] を 2 回以上クリックした場合、これらの操作は単一のプロキシを共有し、サービスの状態は複数の操作にわたって保持されます。
[新しいプロキシを開始する] チェック ボックスをオンにした場合は、 [起動] をクリックするたびに新しいプロキシが開始され、前のセッション シナリオが終了し、サービスの状態がリセットされます。
クライアント構成の編集
WCF テスト クライアントのメイン ウィンドウの左ペインには、クライアントの構成ファイルが表示されます。 いずれかの項目をダブルクリックすると、右ペインにファイルの内容が表示されます。
サービス構成エディターを使用した編集
左ペインで [構成ファイル] を右クリックし、コンテキスト メニューの [SvcConfigEditor での編集] をクリックします。 サービス構成エディターが起動し、クライアント構成の内容が表示されます。 このツール内で構成を編集して保存できます。
サービス構成エディターでファイルを保存すると、WCF テスト クライアントにより、ファイルが外部で変更されたことを通知する警告メッセージが表示され、ファイルをもう一度読み込むかどうかをたずねられます。
[はい] を選択すると、[Client.dll.config] タブの構成の内容に、エディターで行った変更が反映されます。
[いいえ] を選択すると、[Client.dll.config] タブの構成の内容は変更されず、変更内容はソース ファイルに自動的に保存されます。
既定の構成への復元
すべての変更をキャンセルし、既定のクライアント構成に戻すには、左ペインで [構成ファイル] を右クリックし、コンテキスト メニューの [既定の構成に復元] をクリックします。既定の構成値が読み込まれ、[Client.dll.config] タブの内容が復元されます。
変更の検証
保存した変更が WCF テスト クライアントに読み込まれると、WCF スキーマに対して構成の有効性のチェックが行われます。 エラーが見つかった場合は、エラーの詳細を示すダイアログ ボックスが表示されます。
プロキシの生成中、バイナリのコンパイル中、またはサービスの呼び出し中は、編集をサポートするメニュー項目 ([...の編集]、[...の復元] など) が無効になります。 更新された構成が WCF テスト クライアントに読み込まれるときは、サービスの呼び出しも無効になります。
クライアント構成の保持
[ツール] ->[オプション] ->[クライアント構成] タブには、[サービスの起動時に常に構成を再生成する] オプションがあり、既定でオンになっています。 このオプションでは、WCF テスト クライアントによってサービスが読み込まれるたびに、最新のサービス コントラクトとサービスの App.config ファイルに基づいて構成ファイルが再生成されることを指定します。
WCF サービスのクライアント構成を編集した場合、その更新されたファイルを常に使用してサービスをデバッグするには、 [再生成] オプションをオフにします。 このようにすると、サービスを更新して WCF テスト クライアントを再び開いた場合でも、Client.dll.config ファイルとして使用されるのは、更新されたサービスに基づいて再生成されたものではなく、以前に更新したものになります。
ただし、再生成されたプロキシとの一貫性を保つために、構成ファイルの編集が必要になる場合があります。 サービスを更新したことが原因で、再生成されたプロキシと構成ファイルが一致しなくなると、サービスを呼び出したときにエラーが発生します。
注意事項
変更したクライアント構成ファイルを後で再利用することにした場合、該当するファイルは次の場所で見つけることができます。
\Documents and Settings\[ユーザー アカウント]\My Documents\Test Client Projects
クライアント構成ファイルに格納されている更新された資格情報は、このフォルダーのアクセス制御リスト (ACL) によって保護されています。
サービスの追加、削除、および更新
Add Service (サービスの追加)
WCF テスト クライアントにサービスを追加するには、[ファイル] ->[サービスの追加] をクリックします。 次に、追加するサービスの URI (エンドポイント アドレス) を入力する必要があります。 サービスのアドレスには、MEX アドレスまたは WSDL アドレスを指定できます。
[最近のサービス] サブメニューには、最近追加されたサービスのエンドポイントが 10 個まで一覧表示されます。 いずれかをクリックすると、指定したサービスが WCF テスト クライアントに追加されます。
サービスのツリーで、ルートの [マイ サービス プロジェクト] を右クリックし、 [サービスの追加] をクリックする方法でも、同じ結果を得ることができます。
プロキシの生成中、バイナリのコンパイル中、またはサービスの呼び出し中は、サービスの追加をサポートするメニュー項目が無効になります。 また、サービスの呼び出しも無効になります。
サービスの削除
WCF テスト クライアントからサービスを削除するには、削除するサービスのサービス ルートを右クリックし、 [サービスの削除] をクリックします。
プロキシの生成中、バイナリのコンパイル中、またはサービスの呼び出し中は、サービスの削除をサポートするメニュー項目が無効になります。 また、サービスの呼び出しも無効になります。
サービスの更新
WCF テスト クライアントの実行中にサービスに変更を加えた場合、そのサービスに対する WCF テスト クライアントの実装を最新の状態に保つには、サービスのサービス ルートを右クリックし、 [サービスを最新の情報に更新] をクリックします。 更新後、サービスの状態はリセットされます。
プロキシの生成中、バイナリのコンパイル中、またはサービスの呼び出し中は、サービスの更新をサポートするメニュー項目が無効になります。 また、サービスの呼び出しも無効になります。
テスト クライアントが生成するファイルの場所
既定では、WCF テスト クライアントによって、生成されたクライアント コードと構成ファイルが "%appdata%\Local\temp\Test Client Projects" フォルダーに格納されます。 このフォルダーは、WCF テスト クライアントの終了後に削除されます。 構成ファイルが WCF テスト クライアントで変更された場合、 [サービスの起動時に常に構成を再生成する] オプションが無効になっていると、変更されたファイルは、マッピング (メタデータ アドレスとファイル名のマッピング) XML ファイルをインデックスとして、"My Documents\Test Client Projects" の "CachedConfig" フォルダーにコピーされます。
コマンド ラインから WCF テスト クライアントを起動し、/ProjectPath
スイッチを使用して、生成されたファイルを格納する新しいパスを指定することもできます。また、/RestoreProjectPath
スイッチを使用して、既定の場所を復元することもできます。 構文は次のとおりです。
wcfTestClient.exe /ProjectPath [desired location]
このコマンドを実行しても、WCF テスト クライアントは開きません。 フォルダーの場所が変更されるだけです。 このコマンドは、WCF テスト クライアントが実行されているかどうかにかかわらず実行できます。 新しい場所は、WCF テスト クライアントが再起動したときに適用されます。 場所に関する情報は、レジストリか、"%appdata%\Local\temp\Test Client Projects" フォルダーの WcfTestClient.exe.option ファイルに保存できます。
WCF のテスト用クライアントでサポートされる機能
WCF テスト クライアントがサポートする機能の一覧を次に示します。
サービスの呼び出し : 要求/応答メッセージおよび一方向メッセージ
バインディング : Svcutil.exe でサポートされるすべてのバインディング
セッションの制御
メッセージ コントラクト
XML シリアル化
WCF テスト クライアントでサポートされない機能を次に示します。
型: Stream、Message、XmlElement、XmlAttribute、XmlNode、IXmlSerializable インターフェイスを実装する型 (関連する XmlSchemaProviderAttribute 属性を含む)、XDocument 型と XElement 型、および ADO.NET DataTable 型。
双方向コントラクト
トランザクション
セキュリティ: CardSpace、証明書、およびユーザー名/パスワード。
バインディング : WSFederationBinding、任意のコンテキスト バインディングおよび HTTPS バインディング、WebHttpBinding (JSON 応答メッセージ サポート)
WCF のテスト用クライアントの終了
WCF テスト クライアントは、次の方法で閉じることができます。
[ファイル] メニューの [終了] をクリックします。 または、WCF テスト クライアントのメイン ウィンドウで、 [閉じる] をクリックします。 WCF テスト クライアントが Visual Studio によって起動された場合は、どちらの手順でも WCF サービスの自動ホストがシャットダウンし、Visual Studio のデバッグ処理が停止します。
通知領域の [WCF サービス ホスト] アイコンを右クリックし、[終了] をクリックします。これにより、WCF サービスの自動ホストと WCF テスト クライアントの両方がシャットダウンし、Visual Studio のデバッグ処理が停止します。