あなたは基本的に3つのオプションを見てする必要があります:
1)IIS6(のWindows Server 2003/2003 R2)でホスティング:このシナリオでは、あなただけのHTTPプロトコルをホストすることはできません - 何も。これはかなり制限されています。イントラネットシナリオ用のnetTcp。
2)IIS7/WAS(Vista、Server 2008)でのホスティング:これにより、サポートされているプロトコルの選択肢が増え、ホスティング環境は最初は勝者のように見えます。
3)セルフホスティング:このシナリオでは、サービスをホストして実行するために必要な作業は、すべてあなた次第です。
オプション1を今すぐ外した場合(IIS6しか利用できない場合、私はいつも自己ホスティングを使用しています)、IIS7と自己ホスティングの違いです。
IIS7は、「オンデマンドでのオンデマンド」を提供します。サービスコードは常にメモリに格納されていませんが、要求が到着するとロードされインスタンス化されます。これはプラスの可能性があります。
一方、IIS7/WASでホストすると、独自のエンドポイントを指定することができなくなります。エンドポイントとサービスアドレスは、MyService.svcファイルが存在する仮想ディレクトリです。どのような形でも、形や形を変えることはできません。
セルフホスティングは多くの仕事のように見えるかもしれませんが、あなたには最高の柔軟性があります。好きなようにプロトコルを選ぶことができます。自分の好きなように独自のアドレッシングスキームを設定できます。いつ何が行われるかを完全に制御します。サービスをホストするために余分な作業をする必要がある場合など、独自のカスタムServiceHostを導入することができます。
WCFをちょっと遊んでいない限り、私は常にWCFサービスをWindows NTサービス内で実行する必要がある場合は自己ホスティングに投票して投票することをお勧めします。プロダクション環境の場合)、開発/デバッグの場合は、コンソールアプリケーションでWCFサービスを完全にホストすることができます。これを起動して休憩することができます。
長いストーリーを短くするために、結局のところ、何が起こっているのかを本当にコントロールしたいのであれば、私はいつもセルフホスティングをお勧めします。 .NET 4は、おそらく初期の2010年には、起動された後、いつか - -
マイクロソフト社の新しい「ダブリン」サーバー・アドオン一度このかもしれないの変化が出てきますが、それはまだ言うには時期尚早です。
これが役に立ちます。
マルク・
あなたは本当にあなたのWCFを知っています。 – Contango
@Gravitas:ありがとう!私はWCFマスターから学んだ:-)(Juval Lowy) –
こんにちは、ほぼ5年後、WCFとIISの最新バージョンであなたの答えを更新できましたか?また、Windowsサービスのリサイクル機能はIISほど効率的ではないと思いますか?ありがとう! – Nock