方法 : 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 は既定のファイルを送信します。

既定のファイルを構成するには

  1. アプリケーションに Web.config ファイルがない場合は、Visual Studio で、またはテキスト エディタを使用して、このファイルを作成します。

    詳細については、「ASP.NET 構成ファイルの編集」を参照してください。

  2. Web.config ファイルに system.webServer セクションが含まれていない場合は、次の例に示すように、configuration 要素内に作成します。

    <configuration>
      <system.webServer>
      </system.webServer>
    </configuration>
    
  3. system.webServer 要素内に defaultDocument 要素を作成します。

  4. defaultDocument 要素内に files 要素を作成します。

  5. files 要素内に add 要素を作成し、value 属性で、既定ファイルのパスと名前を指定します。

    次の例では、既定ファイルとして Products.aspx ファイルを送信するように system.webServer セクションを構成しています。

    <configuration>
      <system.webServer>
        <defaultDocument>      <files>        <add value="Products.aspx" />      </files>    </defaultDocument>
      </system.webServer>
    </configuration>
    

マネージ コード モジュールの登録

マネージ コード モジュールは、要求が行われるたびに呼び出されます。マネージ コード モジュールを使用すると、要求または応答をカスタマイズできます。

カスタム マネージ コード モジュールを構成するには

  1. アプリケーションに Web.config ファイルがない場合は、Visual Studio で、またはテキスト エディタを使用して、このファイルを作成します。

    詳細については、「ASP.NET 構成ファイルの編集」を参照してください。

  2. Web.config ファイルに system.webServer セクションが含まれていない場合は、次の例に示すように、configuration 要素内に作成します。

    <configuration>
      <system.webServer>
      </system.webServer>
    </configuration>
    
  3. system.webServer 要素内に modules 要素を作成します。

  4. modules 要素内に add 要素を作成し、name 属性と type 属性で、カスタム モジュールを指定します。

    実際の名前および型は、追加するモジュールに従い決定します。Samples.CustomModule 型として実装される、CustomModule という名前のカスタム モジュールを追加する方法を次の例に示します。

    <configuration>
      <system.webServer>
        <modules>      <add name="CustomModule" type="Samples.CustomModule" />    </modules>
      </system.webServer>
    </configuration>
    
  5. 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 つ以上指定します。

カスタム応答ヘッダーを構成するには

  1. アプリケーションに Web.config ファイルがない場合は、Visual Studio で、またはテキスト エディタを使用して、このファイルを作成します。

    詳細については、「ASP.NET 構成ファイルの編集」を参照してください。

  2. Web.config ファイルに system.webServer セクションが含まれていない場合は、次の例に示すように、configuration 要素内に作成します。

    <configuration>
      <system.webServer>
      </system.webServer>
    </configuration>
    
  3. system.webServer 要素内に httpProtocol 要素を作成します。

  4. httpProtocol 要素内に customHeaders 要素を作成します。

  5. 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 アプリケーションの移行

参照

configuration 要素 (全般設定スキーマ)