WCF:ServiceHostとは何ですか?
-
03-07-2019 - |
質問
現在、WCFサービスの使用方法を学んでいるので、WCFサービスの使用時に ServiceHost
を使用することについて言及しているインターネット上のチュートリアルに絶えず遭遇しています。
この ServiceHost
とは何ですか?
現在のプロジェクトでは、WCFサービスを使用しており、アプリから参照しているので、アプリからそれを使用したいときは、 ServiceClient
を次のようにインスタンス化します:
new MusicRepo_DBAccess_ServiceClient(new InstanceContext(instanceContext), customBinding, endpointAddress);
そして、そのインスタンスからWebメソッド( OperationContract
s)にアクセスします(明らかに、メソッドを使用する前に開き、その後 Open
および Close <で閉じます) / code>)
私のWCFサービスはIISのホストであり、アプリから .svc
にアクセスするだけで ServiceClient
をインスタンス化します。
では、 ServiceHost
を使用する理由と場所を教えてください
解決
ServiceHostは、基本的に、IISまたはWAS以外の設定でWCFサービスをホストするために必要なすべてを提供します。 ServiceHostの一般的な場所は、コンソールアプリまたはWindowsサービスです。 ServiceHostをセットアップする方法については、MSDNのサンプルコードを参照してください。コンソールアプリ。
他のヒント
サービスの実装は単なる.NETクラスです。そのためのランタイム環境が必要なので、何らかの方法で実行できます。これがServiceHostの目的です。サービスクラスをロードし、エンドポイントとチャネルリスナーなどを設定し、サービスクラスに「エコシステム」を提供します。住み、運営する。
コンソールアプリ、Windowsサービス、またはWinformsアプリでServiceHostクラスをインスタンス化し、WCFサービスクラスを外部で利用できるようにするか、その作業をIISまたはWASに委任できます。 IISまたはWASでさえ、ServiceHostを使用してWCFサービスをホストします。 -WCFサービスのリクエストが届くたびに。
マーク