方法 : WCF アクティブ化コンポーネントをインストールして設定する
ここでは、HTTP ネットワーク プロトコルでは通信しない Windows Communication Foundation (WCF) サービスをホストするように Windows プロセス アクティブ化サービス (WAS: Windows Process Activation Service) を Windows Vista に構成するために必要な手順について説明します。以降の各セクションで、この構成に関する手順について概説します。
- WCF アクティブ化コンポーネントをインストール (またはそのインストールを確認) します。
- 非 HTTP プロトコルをサポートようにする WAS を構成します。次の手順では、TCP アクティベーション用に Windows Vista を構成します。
Windows Vista に WAS をインストールして構成したら、「方法 : WAS で WCF サービスをホストする」の手順を参照して、WAS を使用する非 HTTP エンドポイントを公開する WCF サービスを作成します。
WCF 非 HTTP アクティブ化コンポーネントをインストールするには
[スタート] ボタンをクリックし、[コントロール パネル] をクリックします。
[プログラム] をクリックし、[プログラムと機能] をクリックします。
[タスク] メニューの [Windows の機能を有効化または無効化] をクリックします。
.NET Framework 3.0 ノードを検索し、それを選択して展開します。
[WCF Non-Http Activation Components] ボックスをオンにして、設定を保存します。
TCP アクティベーションをサポートするように WAS を構成するには
net.tcp アクティベーションをサポートするには、既定の Web サイトをあらかじめ net.tcp ポートにバインドしておく必要があります。これは、IIS 7.0 管理ツール セットと共にインストールされる Appcmd.exe を使用して行います。管理者レベルのコマンド プロンプト ウィンドウで、次のコマンドを実行します。
%windir%\system32\inetsrv\appcmd.exe set site "Default Web Site" -+bindings.[protocol='net.tcp',bindingInformation='808:*']
メモ : このコマンドはテキスト 1 行です。このコマンドは、net.tcp サイト バインディングを、TCP ポート 808 で任意のホスト名をリッスンする既定の Web サイトに追加します。 サイト内のすべてのアプリケーションが同じ net.tcp バインディングを共有しますが、net.tcp サポートの有効化はアプリケーションごとに指定できます。アプリケーションで net.tcp を有効にするには、管理者レベルのコマンド プロンプトから、次のコマンドを実行します。
%windir%\system32\inetsrv\appcmd.exe set app "Default Web Site/<WCF Application>" /enabledProtocols:http,net.tcp
メモ : このコマンドはテキスト 1 行です。このコマンドにより、/<WCF アプリケーション> アプリケーションには、https://localhost/<WCF アプリケーション> および net.tcp://localhost/<WCF アプリケーション> のどちらからでもアクセスできるようになります。 このサンプル用に追加した net.tcp サイト バインディングを削除します。
便宜上次の 2 つの手順が、サンプル ディレクトリにある RemoveNetTcpSiteBinding.cmd というバッチ ファイルに実装されています。
管理者レベルのコマンド プロンプト ウィンドウで次のコマンドを実行して、有効なプロトコルの一覧から net.tcp を削除します。
%windir%\system32\inetsrv\appcmd.exe set app "Default Web Site/servicemodelsamples<WCF Application>" " /enabledProtocols:http
メモ : このコマンドはテキスト 1 行です。 権限のレベルが高いコマンド プロンプト ウィンドウで次のコマンドを実行して、net.tcp サイト バインディングを削除します。
%windir%\system32\inetsrv\appcmd.exe set site "Default Web Site" --bindings.[protocol='net.tcp',bindingInformation='808:*']
メモ : このコマンドはテキスト 1 行です。
有効なプロトコルの一覧から net.tcp を削除するには
有効なプロトコルの一覧から net.tcp を削除するには、管理者レベルのコマンド プロンプト ウィンドウで次のコマンドを実行します。
%windir%\system32\inetsrv\appcmd.exe set app "Default Web Site/servicemodelsamples<WCF Application>" " /enabledProtocols:http
メモ : このコマンドはテキスト 1 行です。
net.tcp サイト バインディングを削除するには
net.tcp サイト バインディングを削除するには、管理者レベルのコマンド プロンプト ウィンドウで次のコマンドを実行します。
%windir%\system32\inetsrv\appcmd.exe set site "Default Web Site" -bindings.[protocol='net.tcp',bindingInformation='808:*']
メモ : このコマンドはテキスト 1 行です。