方法 : IIS 7.0 の <system.webServer> セクションを構成する
更新 : 2007 年 11 月
Web.config ファイルの system.webServer セクションでは、Web アプリケーションに適用する IIS 7.0 設定を指定します。system.WebServer は、configuration セクションの子です。詳細については、「IIS 7.0: system.webServer Section Group (IIS Settings Schema)」を参照してください。
system.WebServer 構成グループで実行できる Web サーバーの設定の例を次に示します。
要求に特定のリソースが含まれていない場合に Web サーバーからクライアントに返す既定のドキュメント (defaultDocument 要素)。
応答の圧縮設定 (httpCompression 要素)。
カスタム ヘッダー (httpProtocol セクションの customHeaders 要素)。
モジュール (modules 要素)。
ハンドラ (handlers 要素)。
system.webServer セクションの一部の設定は IIS 7.0 統合モードにのみ適用され、クラシック モードには適用されません。特に、アプリケーションがクラシック モードで実行されている場合、Web.config ファイルの system.WebServer セクションで指定されているマネージ コード モジュールとハンドラは無視されます。代わりに、system.web セクションの httpModules 要素と httpHandlers 要素で、以前のバージョンの IIS で行ったようにマネージ コード モジュールとハンドラを定義する必要があります。
このトピックでは、system.webServer セクションへの変更が必要となる、次の 3 つの一般的な構成タスクについて説明します。
既定のファイルを追加する。要求 URL に特定のファイルが含まれていない場合、この既定のファイルが送信されます。
マネージ コード モジュールを登録する。
カスタム応答ヘッダーを追加する。
既定のファイルの構成
要求 URL に Web アプリケーションの特定のファイルが含まれていない場合、IIS 7.0 は既定のファイルを送信します。
既定のファイルを構成するには
アプリケーションに Web.config ファイルがない場合は、Visual Studio で、またはテキスト エディタを使用して、このファイルを作成します。
詳細については、「ASP.NET 構成ファイルの編集」を参照してください。
Web.config ファイルに system.webServer セクションが含まれていない場合は、次の例に示すように、configuration 要素内に作成します。
<configuration> <system.webServer> </system.webServer> </configuration>
system.webServer 要素内に defaultDocument 要素を作成します。
defaultDocument 要素内に files 要素を作成します。
files 要素内に add 要素を作成し、value 属性で、既定ファイルのパスと名前を指定します。
次の例では、既定ファイルとして Products.aspx ファイルを送信するように system.webServer セクションを構成しています。
<configuration> <system.webServer> <defaultDocument> <files> <add value="Products.aspx" /> </files> </defaultDocument> </system.webServer> </configuration>
マネージ コード モジュールの登録
マネージ コード モジュールは、要求が行われるたびに呼び出されます。マネージ コード モジュールを使用すると、要求または応答をカスタマイズできます。
カスタム マネージ コード モジュールを構成するには
アプリケーションに Web.config ファイルがない場合は、Visual Studio で、またはテキスト エディタを使用して、このファイルを作成します。
詳細については、「ASP.NET 構成ファイルの編集」を参照してください。
Web.config ファイルに system.webServer セクションが含まれていない場合は、次の例に示すように、configuration 要素内に作成します。
<configuration> <system.webServer> </system.webServer> </configuration>
system.webServer 要素内に modules 要素を作成します。
modules 要素内に add 要素を作成し、name 属性と type 属性で、カスタム モジュールを指定します。
実際の名前および型は、追加するモジュールに従い決定します。Samples.CustomModule 型として実装される、CustomModule という名前のカスタム モジュールを追加する方法を次の例に示します。
<configuration> <system.webServer> <modules> <add name="CustomModule" type="Samples.CustomModule" /> </modules> </system.webServer> </configuration>
precondition 属性をモジュール登録に追加し、その値を managedHandler に設定します。
この前提条件により、.aspx ファイルやマネージ ハンドラなど、ASP.NET アプリケーションのリソースに対する要求に関してのみモジュールが呼び出されるようになります。これには、.htm ファイルなどの静的ファイルは含まれません。
構成セクションは、次の例のようになります。
<configuration> <system.webServer> <modules> <add name="CustomModule" type="Samples.CustomModule" precondition="managedHandler" /> </modules> <defaultDocument> <files> <add value="Products.aspx" /> </files> </defaultDocument> </system.webServer> </configuration>
カスタム応答ヘッダーの構成
カスタム応答ヘッダーを使用すると、アプリケーション固有の情報をブラウザに送信できます。たとえば、Content-Language ヘッダーを追加して、Web ページの本文で使用されている言語を示すことができます。これを行うには、en-US (米国英語)、en-GB (英国英語) など、言語と国/地域を表す値を 1 つ以上指定します。
カスタム応答ヘッダーを構成するには
アプリケーションに Web.config ファイルがない場合は、Visual Studio で、またはテキスト エディタを使用して、このファイルを作成します。
詳細については、「ASP.NET 構成ファイルの編集」を参照してください。
Web.config ファイルに system.webServer セクションが含まれていない場合は、次の例に示すように、configuration 要素内に作成します。
<configuration> <system.webServer> </system.webServer> </configuration>
system.webServer 要素内に httpProtocol 要素を作成します。
httpProtocol 要素内に customHeaders 要素を作成します。
customHeaders 要素内に add タグを作成し、name 属性と value 属性で、カスタム ヘッダーの定義を指定します。
実際の名前と値は、アプリケーションでのヘッダーの機能に従い決定します。値が CustomHeader の CustomHeader という名前のカスタム ヘッダーを追加する方法を次の例に示します。
<configuration> <system.webServer> <httpProtocol> <customHeaders> <add name="CustomHeader" value="CustomHeader" /> <customHeaders> </httpProtocol> </system.webServer> </configuration>
参照
処理手順
チュートリアル : IIS 7.0 での ASP.NET アプリケーションの構成
概念
IIS 6.0 から IIS 7.0 への ASP.NET アプリケーションの移行