いろいろ備忘録日記

主に .NET とか Go とか Flutter とか Python絡みのメモを公開しています。

WCF入門-013 (基本的なサンプル, IIS, WASの有効化, Windows Process Activation Service, 非HTTPプロトコルのサポート, net.tcp, net.pipe, net.msmq)


今回は、WASの有効化について。


IIS 7.0から、非HTTPプロトコルがサポートされました。
以下のものがサポートされています。

  • net.tcp (TCP)
  • net.pipe (名前付きパイプ)
  • net.msmq (MSMQ)


なので、WCFにてTCPをトランスポートとして利用するサービスを
IIS上でホストすることが出来るようになっています。


で、上記のように非HTTPプロトコルを利用できるようにするための仕組みがWAS (Windows Process Activation Service) ということに
なるのですが、これの初期設定でちょっとハマッたので、以下に設定するまでのメモを記述。


以下、動作させるまでの手順。

1.リスナーサービスの確認。
 WASの設定は、IISマネージャから利用するプロトコルを選択すれば良いのですが
 それぞれのプロトコルを利用するためには、リスナーサービスが起動していることが
 前提条件となります。

 以下のサービスが起動していることを確認します。

  • Net.Tcp Listener Adapter
  • Net.Pipe Listener Adapter
  • Net.Msmq Listener Adapter

 上記のサービスは、Windows Server 2008 R2ではデフォルトで無効になっているので注意。
 Windows 7の場合は、最初から有効になっていました。

2.対象となるサイトを右クリックして、「バインドの編集」を選択
 利用するプロトコルを設定します。最初から存在する「Default Web Site」の場合は
 既に設定済みとなっています。新たにサイトを作成した場合は以下のように設定。

種類 バインド情報
net.tcp 808:*
net.pipe *
net.msmq localhost

尚、net.tcpにて設定している808番ポートは、デフォルトでWindowsファイアーウォールに
設定されているので、それを利用しています。(Windows Communication Foundation Net.Tcpリスナー)

3.再度サイトを右クリックして、「Webサイトの編集」→「詳細設定」をクリック。
 「有効なプロトコル」に必要なプロトコルを記述。(複数の場合はカンマでつなぐ)
 
 (例)http,net.tcp,netpipe,net.msmq

 ここまでの設定で、そのWebサイトにてTCP接続などが利用できる設定が完了。

4.IISマネージャより、対象となるWebアプリを右クリックして「アプリケーションに変換」をクリック。
 これをしておかないと、プロトコルの設定が出来ません。VisualStudioから発行する場合は
 あらかじめ、「発行先でIISアプリケーションとしてマークする」にチェックをつけておきます。

5.再度、Webアプリを→クリックして、「アプリケーションの管理」→「詳細設定」をクリック。
 「有効なプロトコル」に必要なプロトコルを記述。(複数の場合はカンマでつなぐ)
 
 (例)http,net.tcp

これで準備完了。
後は、WCFサービスを普通に作成して動かします。



【参考リソース】

================================
過去の記事については、以下のページからご参照下さい。