Windows Communication Foundation での Internet Information Services 7.0 の構成
Internet Information Services (IIS) 7.0 はモジュール設計になっており、必要なコンポーネントを選択してインストールできます。 この設計は、Windows Vista で新しく導入されたマニフェスト ドリブンのコンポーネント テクノロジに基づいています。 IIS 7.0 には、40 を超えるスタンドアロン機能コンポーネントがあり、個別にインストールできます。 これにより、IT プロフェッショナルは必要に応じてインストールをカスタマイズできます。 このトピックでは、Windows Communication Foundation (WCF) で使用する IIS 7.0 を構成し、どのコンポーネントが必要かを判断する方法について説明します。
最小インストール : WAS のインストール
完全な IIS 7.0 パッケージの最小インストールでは、Windows プロセス アクティブ化サービス (WAS) をインストールします。 WAS はスタンドアロン機能であり、すべての Windows Vista オペレーティング システム (Home Basic、Home Premium、Business、Ultimate、および Enterprise) で利用できる唯一の IIS 7.0 の機能です。
コントロール パネルの [プログラム] をクリックし、 [プログラムと機能] に一覧表示される [Windows の機能を有効化または無効化] をクリックします。次の図に示すように、一覧に WAS コンポーネントが表示されます。
この機能には、次のサブコンポーネントがあります。
.NET 環境
構成 API
プロセス モデル
WAS のルート ノードを選択した場合は、既定で [プロセス モデル] サブノードだけがオンになっています。 このインストールでは Web サーバーをサポートしないため、WAS のみをインストールすることに注意してください。
WCF または任意の ASP.NET アプリケーションを機能させるには、 [.NET 環境] チェック ボックスをオンにします。 つまり、WCF および ASP.NET を適切に機能させるには、すべての WAS コンポーネントが必要です。 これらのコンポーネントのいずれかを一度インストールすると、チェック ボックスは自動的にオンになります。
IIS 7.0 : 既定のインストール
[インターネット インフォメーション サービス] 機能をオンにすることで、次の図に示すように、一部のサブノードが自動的にオンになります。
これは IIS 7.0 の既定のインストールです。 このインストールにより、IIS 7.0 を使用して静的コンテンツ (HTML ページなど) を提供できます。 しかし、ASP.NET や CGI アプリケーションを実行したり、WCF サービスをホストしたりすることはできません。
IIS 7.0 : ASP.NET サポートを行うインストール
ASP.NET を IIS 7.0 で機能させるには、ASP.NET をインストールする必要があります。 [ASP.NET] をオンにした後、画面は次の図のようになるはずです。
これは、WCF および ASP.NET アプリケーションの両方を IIS 7.0 で機能させるための最小限の環境です。
IIS 7.0 : IIS 6.0 互換コンポーネントを備えたインストール
Visual Studio 2005 や、IIS 6.0 メタベース API を使用する仮想アプリケーションを構成するオートメーション スクリプトまたはツール (Adsutil.vbs など) と共にシステムに IIS 7.0 をインストールする場合は、IIS 6.0 スクリプト ツールを必ずオンにしてください。 これにより、IIS 6.0 と互換性のある管理の他のサブノードが自動的にオンになります。 実行後の画面を次の図に示します。
このインストールにより、IIS 7.0、ASP.NET および WCF 機能を使用するために必要なすべてのものが揃い、Web でサンプルを利用できるようになります。
要求の制限
IIS 7 がインストールされた Windows Vista では、maxUri
および maxQueryStringSize
の設定の既定値が変更されています。 既定では、IIS 7.0 における要求のフィルター処理で使用できる文字数は、URL が 4096 文字、クエリ文字列が 2048 文字です。 これらの既定値を変更するには、App.config ファイルに次の XML を追加します。
<system.webServer>
<security>
<requestFiltering>
<requestLimits maxUrl="8192" maxQueryString="8192" />
</requestFiltering>
</security>
</system.webServer>