39

現在、WCFサービスの使用方法を学習しているため、インターネット上で、WCFサービスを使用するときにを使用することについて言及しているチュートリアルに常に遭遇していServiceHostます。

これは正確には何ServiceHostですか?


現在のプロジェクトでは、WCFサービスを使用していて、アプリからWCFサービスへの参照を持っています。アプリからそれを利用したいときはいつでも、次のServiceClientようにインスタンス化します。

new MusicRepo_DBAccess_ServiceClient(new InstanceContext(instanceContext), customBinding, endpointAddress);

次に、そのインスタンスからWebメソッドにアクセスOperationContractします(明らかに、メソッドを使用する前に開いて、後でandで閉じOpenますClose

WCFサービスはIISのホストであり.svc、アプリからにアクセスするだけでをインスタンス化できますServiceClient

では、なぜ、どこでServiceHost使用されるのでしょうか。

4

2 に答える 2

33

ServiceHostは基本的に、IISまたはWAS以外の設定でWCFサービスをホストするために必要なすべてのものを提供します。ServiceHostの一般的な場所は、コンソールアプリまたはWindowsサービスです。コンソールアプリでServiceHostを設定する方法については、MSDNのサンプルコードを参照してください。

于 2009-05-03T03:27:09.990 に答える
28

サービスの実装は単なる.NETクラスです。何らかの方法で実行できるように、そのためのランタイム環境が必要です。これがServiceHostの目的です。サービスクラスをロードし、エンドポイントとチャネルリスナーなどをセットアップして、サービスクラスに「エコシステム」を提供します。

コンソールアプリ、Windowsサービス、またはWinformsアプリでServiceHostクラスを自分でインスタンス化して、WCFサービスクラスを外部で利用できるようにするか、その作業をIISまたはWASに委任することができます。IISまたはWASでさえ、ServiceHostを使用してWCFサービスをホストします。WCFサービスの要求が発生するたびに、バックグラウンドで自動的に実行し、「オンデマンド」で実行します。

マーク

于 2009-05-03T08:15:10.093 に答える