ASP.NET アプリケーションでアプリケーションとディレクトリ固有の構成設定を行う

この記事では、ASP.NET でアプリケーション固有およびディレクトリ固有の構成設定を行う方法について説明します。

元の製品バージョン: ASP.NET
元の KB 番号: 815174

概要

Web.config ファイルは、ASP.NET アプリケーションのルート ディレクトリにあります。 Web.config ファイルは、アプリケーションに固有の構成情報を指定します。 ディレクトリごとに構成設定を設定することもできます。 これを行うには、次の 2 つの方法があります。

  • アプリケーション 内のディレクトリに複数のWeb.config ファイルを配布します。 Web.config ファイルを ASP.NET アプリケーション ディレクトリに追加します。この設定は、上位レベルのWeb.config ファイルまたはシステム コンピューター構成 (Machine.config) ファイルの設定をオーバーライドします。

  • ディレクトリまたはファイルごとの設定をアプリケーション Web.config ファイルに直接追加します。 この方法では、1 つの Web.config ファイルを使用して、ディレクトリごとの構成設定を有効にします。 また、 Machine.config ファイルのこのメソッドを使用して、ASP.NET Web アプリケーションの構成設定を強制し、 Web.configファイルが Machine.config 設定をオーバーライドしないようにすることもできます。

Machine.config ファイル内の location 要素を使用する

Web アプリケーションまたはディレクトリに適用される設定を指定するには、システム Machine.config ファイルの要素に <configuration> 要素を追加<location>します。 構成設定を 1 つのファイルに一元化する場合に便利です。 また、Web ホスティング環境では、個々の Web アプリケーションで特定の構成設定を要求する場合にも便利です。

要素には<location>、2 つの属性と allowOverridepath含まれています。 属性は path 、構成設定でカバーされるサイトまたは仮想ディレクトリを定義します。 要素の設定が既定の <location> Web サイトに適用されることを指定するには、 属性を pathDefault Web Site設定します。 既定の Web サイトで MyApp という名前のアプリケーションに設定を適用するように指定するには、 属性を pathDefault Web Site/MyApp設定します。

属性が allowOverride false の場合、Web アプリケーション ディレクトリ内の Web.config ファイルは、 要素で指定した設定を <location> オーバーライドできません。 これは、アプリケーション開発者が Web アプリケーションを構成する方法を制限する必要がある環境で便利な設定です。 次の例は、 Machine.config ファイルの一部を示しています。 このファイルでは、既定の Web サイト上の MyApp アプリケーションにアクセスするための認証が必要であり、 Web.config ファイルの設定ではオーバーライドできません。

<configuration>
    <location path="Default Web Site/MyApp" allowOverride="false">
        <system.web>
            <authorization>
                <allow users="?" />
            </authorization>
        </system.web>
    </location>
</configuration>

Web.config ファイル内の location 要素を使用する

特定のアプリケーションまたはディレクトリに適用される設定を指定するには、アプリケーション Web.config ファイルの要素に <configuration> 要素を追加<location>します。 通常、 要素には<location>Web.config ファイルで使用する要素とその他の構成要素が含まれます<system.web>。 要素の属性は path<location> 場所の構成項目が適用される仮想ディレクトリまたはファイル名を指定します。 次の例は、フォーラム仮想ディレクトリのカスタム エラー メッセージを指定するアプリケーション Web.config ファイルの一部を示しています。

<configuration>
    <location path="forum" >
        <system.web>
            <customErrors mode="RemoteOnly" defaultRedirect="forum-error.aspx">
                <error statusCode="404" redirect="forum-file-not-found.aspx" />
            </customErrors>
        </system.web>
    </location>
</configuration>

関連情報