今回は、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サービスを普通に作成して動かします。
【参考リソース】
- WAS を使用して WCF サービスを拡張する (非 HTTP プロトコルのサポート)
================================
過去の記事については、以下のページからご参照下さい。
- いろいろ備忘録日記まとめ