ウェブ設定された設定要素
私は実際には階層の詳細について知っていた多くの人々に会っていない
忘れるなら
ディスカッションを始める前に
このファイルは、アプリケーションの設定とHTTPモジュールやハンドラのように、このアプリケーションの多くの機能を制御します.実際のアプリケーションでは、通常、サブディレクトリを持っています.これはURLにリクエストを処理できるようになります
例として、私はフォルダ
に
すべてが動作していることをテストするには、
ついに!これがあなたが最初にここに来た理由です.一方
インサイド
その他
両方の組み合わせを使用することができます イン イン に これをテストするには、
設定をロックするには
私は質問の後に質問を見ました、ワイルドカードの使用を要求して、正規表現と類似しています
エルマ.IOは簡単なエラーログとアップタイム監視サービスです.ネットすべてのサポートを使用してエラーのコントロールを取り戻す.NET Webおよびログフレームワーク.
➡️ Error Monitoring for .NET Web Applications ⬅️
この記事はエルマに初めて現れた.ioのブログhttps://blog.elmah.io/web-config-location-element-demystified/
Web.config
ファイルと利用方法location
要素.実際、私は、複数の人々がWeb.config
ファイル名Views
マイMVCアプリケーションのフォルダ?ASP . NETコアプロジェクトでさえWeb.config
ファイル(発行時に生成される)と、まだASPの実行を制御する機能の一部を使用することができます.ネットコアウェブサイト.あなたがこのポストを終えたとき、あなたは専門家でなければなりません.忘れるなら
Web.config
これが原因で欠点があるXMLファイルであること、IISのウェブサイトをホストするとき、それはかなり強力な機能です.ウェブ設定階層
ディスカッションを始める前に
location
要素、複数の有する概念をご紹介したいと思いますWeb.config
ファイル.新しいプロジェクトのルートで生成されたものをすでに知っています.このファイルは、アプリケーションの設定とHTTPモジュールやハンドラのように、このアプリケーションの多くの機能を制御します.実際のアプリケーションでは、通常、サブディレクトリを持っています.これはURLにリクエストを処理できるようになります
/sub/
. 内部の設定Web.config
ファイルはすべてのサブディレクトリと同様にルートの両方で利用可能です.のは、いくつかの設定を特定し、目に見えるとしましょう/sub/
のみ、あなたは上書きすることができますWeb.config
ファイルの内部sub
フォルダ.簡単に説明するにはappSettings
は上書きされる.例として、私はフォルダ
sub
そして新しいDefault.aspx
そのフォルダの中のファイル.この例はwebformを使用していますが、IIS上では何でも構いません.インサイドsub
フォルダ、私も新しいを配置しているWeb.config
ファイルに
appSettings
要素Web.config
ファイルがルートにある、新しい設定を作成しますMessage
:<configuration>
<appSettings>
<add key="Message" value="Frontpage"/>
</appSettings>
...
</configuration>
にappSettings
要素Web.config
ファイルはSub
フォルダも同様に設定しますMessage
:<configuration>
<appSettings>
<add key="Message" value="Subpage"/>
</appSettings>
</configuration>
最初のファイルがどのようにより多くの構成(3つのドットによって表される)と構成を含んでいるかに注目してくださいWeb.config
ファイル名Sub
フォルダには上書きの設定が入っています.すべてが動作していることをテストするには、
Default.aspx
ファイル名Sub
次のマークアップを含むフォルダ<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Default.aspx.cs" Inherits="WebApplication9.sub.Default" %>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<body>
<h1>Hello from <%= ConfigurationManager.AppSettings["Message"] %></h1>
</body>
</html>
あなたはすでにそれを推測した.ときに/sub/
, メッセージはHello from Subpage
:ロケーション要素
ついに!これがあなたが最初にここに来た理由です.一方
Web.config
ファイルをフォルダーにまたがって、時にはそれだけで同じ場所にすべての設定を簡単です.The location
要素を正確に行うことができます.を指定することでlocation
Webアプリケーション内の開始タグと終了タグ、「ミニ」を持っていますWeb.config
通常ファイルに含まれるファイルWeb.config
. 混乱?前のシナリオを再作成しましょうWeb.config
ファイル<configuration>
<appSettings>
<add key="Message" value="Frontpage"/>
</appSettings>
<location path="Sub">
<appSettings>
<add key="Message" value="Subpage"/>
</appSettings>
</location>
...
</configuration>
If you are creating your own example, make sure to delete the
Web.config
file in theSub
folder.
インサイド
location
要素、私は新しいappSettings
要素.実際には、可能なネストされた要素location
からのものですconfiguration
要素.これは、system.webServer
要素または他の要素Web.config
ファイルlocation
.アローオーバーライド
その他
path
属性をlocation
要素、別の興味深い属性がありますallowOverride
. この属性を使用すると、location
要素.これがどのように動作するかを示す例を作りましょう.両方の組み合わせを使用することができます
location
要素とWeb.config
サブディレクトリのファイル.ASP .NETは常に要求しているページに最も近い構成を使用します.我々が持っているシナリオでappSettings
要求するとき、3つの異なる場所で指定される/Sub/
IISは次の順序で設定を探します.Web.config
ファイル名Sub
フォルダ.location
エレメント付きpath
設定するSub
にWeb.config
ルートフォルダ内のファイル.Web.config
ルートフォルダ内のファイル.Web.config
最初の例からSub
フォルダを指定して内容を置き換えます.<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<appSettings>
<add key="Message" value="Web.config in Sub folder"/>
</appSettings>
</configuration>
アプリケーションを実行すると、新しいメッセージが表示されます.設定をロックするには
Web.config
ファイルをルートディレクトリに追加allowOverride="false"
:<configuration>
<appSettings>
<add key="Message" value="Frontpage"/>
</appSettings>
<location path="Sub" allowOverride="false">
<appSettings>
<add key="Message" value="Subpage"/>
</appSettings>
</location>
...
</configuration>
プロジェクトを起動すると、例外が発生しますWeb.config
ファイル名Sub
フォルダは、それが許されない設定を上書きしようとしていますワイルドカードと正規表現
私は質問の後に質問を見ました、ワイルドカードの使用を要求して、正規表現と類似しています
path
属性location
要素.特定の命名パターンを持つすべてのサブディレクトリのようなものをターゲットにすることができるようにします.<location path="languages/*">
あなたにそれを壊すものであることを残念に思います.それは不可能です.The path
属性には、既存のファイルまたはディレクトリへの絶対パスが必要です.あなたのユーザーは、より少しの誤りを評価しますか?
エルマ.IOは簡単なエラーログとアップタイム監視サービスです.ネットすべてのサポートを使用してエラーのコントロールを取り戻す.NET Webおよびログフレームワーク.
➡️ Error Monitoring for .NET Web Applications ⬅️
この記事はエルマに初めて現れた.ioのブログhttps://blog.elmah.io/web-config-location-element-demystified/
Reference
この問題について(ウェブ設定された設定要素), 我々は、より多くの情報をここで見つけました https://dev.to/thomasardal/web-config-location-element-demystified-njhテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol