この記事では、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>
要素には、path
とallowOverride
の 2 つの属性が含まれています。 path
属性は、構成設定でカバーされるサイトまたは仮想ディレクトリを定義します。 <location>
要素の設定を既定の Web サイトに適用するように指定するには、path
属性を Default Web Site
に設定します。 既定の Web サイトの MyApp という名前のアプリケーションに設定を適用するように指定するには、 path
属性を Default 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>
要素とその他の構成要素が含まれます。 <location>
要素のpath
属性は、場所の構成項目が適用される仮想ディレクトリまたはファイル名を指定します。 次の例は、フォーラム仮想ディレクトリのカスタム エラー メッセージを指定するアプリケーション 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>
関連情報