マネージド アプリケーションのホスト
Windows Communication Foundation (WCF) サービスは、任意の .NET Framework アプリケーションでホストできます。 自己ホスト型サービスは、展開を要するインフラストラクチャが最も少ないので、最も柔軟なホスト オプションです。 ただし、マネージド アプリケーションでは、インターネット インフォメーション サービス (IIS) や Windows サービスなど、WCF の他のホスト オプションが備えている高度なホスト機能と管理機能が提供されないので、これは堅牢さに最も乏しいホスト オプションでもあります。
自己ホスト型サービスを作成するには、メッセージをリッスンするサービスを開始する ServiceHostのインスタンスを作成して開きます。 詳細については、マネージド アプリケーションでの WCF サービスのホスト方法に関するページを参照してください。
コントラクトの定義方法、コントラクトの実装方法、およびマネージド アプリケーション内部にサービスをホストする方法の完全な例については、入門チュートリアルに関するページおよび「自己ホスト」を参照してください。
以下に、このホスト オプションを使用する一般的なシナリオについて説明します。
コンソール アプリケーション
自己ホストによって可能になる一般的なシナリオに、コンソール アプリケーション内部で実行される WCF サービスがあります。 コンソール アプリケーション内部の WCF サービスをホストすることは、通常、サービスの開発フェーズで有用です。 コンソール アプリケーションにより、アプリケーション内部で起こっている状況を見極めるための情報のデバッグやトレースが容易になり、新しい場所にアプリケーションをコピーして移動することも簡単に行うことができます。
リッチ クライアント アプリケーション
自己ホストによって可能になるもう 1 つの一般的なシナリオに、リッチ クライアント アプリケーションがあります。たとえば、Windows Presentation Foundation (WPF) または Windows フォーム (WinForms) に基づいて作成されたものなどです。 このホスト オプションを使用すると、WPF や WinForms アプリケーションなどのリッチ クライアント アプリケーションで外部との通信を簡単に行えるようになります。 たとえば、ユーザー インターフェイスに WPF を使用しながら、他のクライアントからの接続を許容して情報を共有するために WCF サービスをホストするピアツーピア コラボレーションのクライアントなどです。