Windows Communication Foundation (WCF) サービス ホスト (WcfSvcHost.exe) を使用すると、Visual Studio デバッガー (F5) を起動して、実装したサービスを自動的にホストしてテストできます。 その後、WCF テスト クライアント (WcfTestClient.exe) または独自のクライアントを使用してサービスをテストし、潜在的なエラーを見つけて修正できます。
WCF サービス ホスト
WCF サービス ホストは、WCF サービス プロジェクト内のサービスを列挙し、プロジェクトの構成を読み込み、検索した各サービスのホストをインスタンス化します。 このツールは、WCF サービス テンプレートを使用して Visual Studio に統合され、プロジェクトのデバッグを開始するときに呼び出されます。
WCF サービス ホストを使用すると、開発時に追加のコードを記述したり、特定のホストにコミットしたりすることなく、WCF サービスを (WCF サービス ライブラリ プロジェクトで) ホストできます。
注
WCF サービス ホストは部分信頼をサポートしていません。 部分信頼で WCF サービスを使用する場合は、Visual Studio の WCF サービス ライブラリ プロジェクト テンプレートを使用してサービスを構築しないでください。 代わりに、WCF 部分信頼がサポートされている Web サーバーでサービスをホストできる WCF サービス Web サイト テンプレートを選択して、Visual Studio で新しい Web サイトを作成します。
WCF サービス ホストによってホストされるプロジェクトの種類
WCF サービス ホストでは、WCF サービス ライブラリ プロジェクトの種類として、WCF サービス ライブラリ、シーケンシャル ワークフロー サービス ライブラリ、ステート マシン ワークフロー サービス ライブラリ、シンジケーション サービス ライブラリをホストできます。 WCF サービス ホストでは、 アイテム の追加機能を使用してサービス ライブラリ プロジェクトに追加できるサービスをホストすることもできます。 これには、WCF サービス、WF ステート マシン サービス、WF シーケンシャル サービス、XAML WF ステート マシン サービス、XAML WF シーケンシャル サービスが含まれます。
ただし、このツールはホストの構成には役立たないことに注意してください。 このタスクでは、App.config ファイルを手動で編集する必要があります。 このツールでは、ユーザー定義の構成ファイルも検証されません。
注意事項
WCF サービス ホストは、この目的のために設計されていないため、運用環境でサービスをホストするために使用しないでください。 WCF サービス ホストは、このような環境の信頼性、セキュリティ、管理性の要件をサポートしていません。 代わりに、IIS を使用してください。これは、優れた信頼性と監視機能を提供し、サービスをホストするための推奨ソリューションであるためです。 サービスの開発が完了したら、サービスを WCF サービス ホストから IIS に移行する必要があります。
Visual Studio 内で WCF サービス ホストを使用するシナリオ
次の表に、Visual Studio のソリューション エクスプローラーでプロジェクトを右クリックし、[プロパティ] を選択し、[デバッグ] タブを選択して [プロジェクトの開始] をクリックすると表示される、[コマンド ライン引数] ダイアログ ボックスのすべてのパラメーターの一覧を示します。 これらのパラメーターは、WCF サービス ホストの構成に役立ちます。
パラメーター | 意味 |
---|---|
/client |
サービスがホストされた後に実行する実行可能ファイルへのパスを指定する省略可能なパラメーター。 これにより、ホスティング後に WCF テスト クライアントが起動します。 |
/clientArg |
カスタム クライアント アプリケーションに渡される引数として文字列を指定します。 |
/? |
ヘルプ テキストを表示します。 |
WCF テスト クライアントの使用
新しい WCF サービス プロジェクトを作成し、F5 キーを押してデバッガーを起動すると、WCF サービス ホストは、プロジェクト内で見つかるすべてのサービスのホストを開始します。 WCF テスト クライアントが自動的に開き、構成ファイルで定義されているサービス エンドポイントの一覧が表示されます。 メイン ウィンドウから、パラメーターをテストし、サービスを呼び出すことができます。
WCF テスト クライアントが使用されていることを確認するには、Visual Studio の ソリューション エクスプローラー でプロジェクトを右クリックし、[ プロパティ] を選択してから、[ デバッグ ] タブを選択します。[ プロジェクトの開始 ] をクリックし、[ コマンド ライン引数 ] ダイアログ ボックスに次のものが表示されることを確認します。
/client:WcfTestClient.exe
カスタム クライアントの使用
カスタム クライアントを使用するには、Visual Studio のソリューション エクスプローラーでプロジェクトを右クリックし、[プロパティ] を選択してから、[デバッグ] タブを選択します。次の例に示すように、[プロジェクトの開始] をクリックし、[/client
] ダイアログ ボックスで パラメーターを編集して、カスタム クライアントを指すようにします。
/client:"path/CustomClient.exe"
F5 キーを押してサービスを再度開始すると、デバッガーを起動すると、WCF サービス ホストによってカスタム クライアントが自動的に開始されます。
次の例に示すように、 /clientArg:
パラメーターを使用して、カスタム クライアント アプリケーションに渡される引数として文字列を指定することもできます。
/client:"path/CustomClient.exe" /clientArg:"arguments that are passed to Client"
たとえば、配信サービス ライブラリ テンプレートを使用している場合は、次のコマンド ライン引数を使用できます。
/client:iexplore.exe /clientArgs:http://localhost:8731/Design_Time_Addresses/Feed1/
クライアントを指定しない
WCF サービス のホスト後にクライアントを使用しない場合は、Visual Studio の ソリューション エクスプローラー でプロジェクトを右クリックし、[ プロパティ] を選択し、[ デバッグ ] タブを選択します。[ プロジェクトの開始 ] をクリックし、[ コマンド ライン引数 ] ダイアログ ボックスは空白のままにします。
カスタム ホストの使用
カスタム ホストを使用するには、Visual Studio の ソリューション エクスプローラー でプロジェクトを右クリックし、[ プロパティ] を選択し、[ デバッグ ] タブを選択します。[ 外部プログラムの開始 ] をクリックし、カスタム ホストへの完全なパスを入力します。 [ コマンド ライン引数 ] ダイアログ ボックスを使用して、ホストに渡す引数を指定することもできます。
WCF サービス ホストのユーザー インターフェイス
(Visual Studio 内で F5 キーを押して) WCF サービス ホストを最初に呼び出すと、 WCF サービス ホスト ウィンドウが自動的に開きます。 WCF サービス ホストが実行されている場合、プログラムのアイコンが通知領域に表示されます。 アイコンをダブルクリックして 、WCF サービス ホスト ウィンドウを開きます。
サービス ホスティング中にエラーが発生すると、WCF サービス ホスト ダイアログ ボックスが開き、関連情報が表示されます。
WCF サービス ホストのメイン ウィンドウには、次の 2 つのメニューがあります。
ファイル: 閉じる コマンドと 終了 コマンドが含まれています。 [ 閉じる] をクリックすると、[ WCF サービス ホスト ] ダイアログ ボックスが閉じますが、サービスは引き続きホストされます。 [終了] をクリックすると、WCF サービス ホストもシャットダウンされます。 これにより、ホストされているすべてのサービスも停止します。
ヘルプ: バージョン情報を含む About コマンドが含まれています。 また、ヘルプ ファイルを開くことができる ヘルプ コマンドも含まれています。
メインの WCF サービス ホスト ウィンドウには、次の 2 つの領域があります。
最初の領域は サービスです。 すべてのサービスの基本情報を表示するリストが含まれています。 情報には、次のものが含まれます。
サービス: すべてのサービスを一覧表示します。
状態: サービスの状態を一覧表示します。 有効な値は、"Started"、"Stopped"、"Error" です。
メタデータ アドレス: サービスのメタデータ アドレスを表示します。
2 番目の領域は 追加情報です。 [ サービス] 領域 で特定のサービス行が選択されている場合、サービスの状態の詳細な説明が表示されます。 状態が [エラー] の場合は、画面に完全なエラー メッセージを表示できます。
WCF サービス ホストの停止
WCF サービス ホストは、次の 4 つの方法でシャットダウンできます。
Visual Studio でデバッグ セッションを停止します。
[WCF サービス ホスト] ウィンドウの [ファイル] メニューから [終了] を選択します。
システム通知領域の WCF サービス ホスト トレイ アイコンのコンテキスト メニューから [終了] を選択します。
WCF テスト クライアントが使用されている場合は終了します。
管理者特権を持たないサービス ホストの使用
管理者特権を持たないユーザーが WCF サービスを開発できるようにするには、名前空間 "http://+:8731/Design_Time_Addresses" に ACL (アクセス制御リスト) が作成されます。Visual Studio のインストール中。 ACL は (UI) に設定され、コンピューターにログオンしているすべての対話型ユーザーが含まれます。 管理者は、この ACL に対してユーザーを追加または削除したり、追加のポートを開いたりすることができます。この ACL を使用すると、ユーザーは管理者特権を付与せずに WCF サービス自動ホスト (wcfSvcHost.exe) を使用できます。
管理者特権の管理者アカウントで、Windows Vista の netsh.exe ツールを使用してアクセスを変更できます。 netsh.exeの使用例を次に示します。
netsh http add urlacl url=http://+:8001/MyService user=<___domain>\<user>
netsh.exeの詳細については、「Netsh.exe ツールおよび Command-Line スイッチを使用する方法」を参照してください。