ASP.NET web.config:configSourceとファイル属性


186

web.configASP.NETアプリケーションの-file 内では、appSettingsおよびのようなconfigのいくつかのセクションがconnectionStrings属性fileおよびをサポートしていますconfigSource

file-attributeと-attributeの使用の違いは何configSourceですか?どの属性をいつ使用する必要があり、両方を使用できますか?

<?xml version="1.0"?>
<configuration>
  <appSettings file="AppSettings.config">
  </appSettings>
  <connectionStrings configSource="ConnectionStrings.config">      
  </connectionStrings>
  <!-- ... -->
</configuration>

回答:


299

file 属性

  • カスタムアプリケーション構成設定を含む外部ファイルへの相対パスを指定します
  • appSettingsセクションに固有
  • .configファイルの設定をマージ(および上書き)します
  • 指定されたファイルを変更するときにWebアプリケーションを再起動しません
  • http://msdn.microsoft.com/en-US/library/ms228154(v=vs.100).aspx
  • 使用して設定をAppSettings設定。APIを追加すると、すべての設定が構成のメイン.configにマージされます。通話を保存します。
  • .NET 1.1以降
  • ファイルが存在しない場合、例外はスローされません。

configSource 属性

このfile属性は、web.configファイルのappSettingsエントリで行うようなカスタム設定を含む外部ファイルを指定します。一方、configSource属性で指定された外部ファイルには、configSourceを宣言するセクションの設定が含まれています。たとえばconfigSource、ページセクションの属性を使用する場合、外部ファイルにはページセクションの設定が含まれます。

file属性で指定された外部設定で宣言されたカスタム設定はappSettingsweb.configファイルのセクションの設定とマージされ ます。その間、はマージをサポートしてconfigSource いません。つまり、セクション設定全体を外部ファイルに移動する必要があります。

http://www.codeproject.com/Messages/1463547/Re-difference-between-configSource-and-file-attrib.aspx


10
また、「file」属性を使用すると、直接のディレクトリツリーの外部にあるファイルを指定できます。これは、異なるサイト間で共通の設定を共有するために重要です。残念ながら、「configsource」属性は現在のツリー内のファイルに制限するため、共有設定の場合はIISで仮想ディレクトリを指定する必要があります。
Ed Graham

6
上記のコメントは完全に正しくはありませんでした。編集するためのやや恣意的な5分のウィンドウを見逃してしまったようです。IISで仮想ディレクトリを設定して、「configsource」ファイルを直接のディレクトリツリーの外部に置くことはできません。ですから、それは本当にかなり制限的です。ジャンクションポイント(またはNTFSハードリンク)を使用して解決しましたが、正確ではありません...
Ed Graham

1
WAO!すばらしい答え...これは私を本当に助けました:will not cause web application to restart when modifying the specified file。カスタムセクションの外部ファイルの設定を変更するときにアプリを再起動する必要があるので、方法はconfigSourceです。興味深いのは、私が使用fileしていて、さまざまなセクションが機能していたことです。file以外のセクションでも機能しますappSettingsが、回答でよく説明されている落とし穴があります。
Leniel Maccaferri 2014

4
configSourceリストに追加したい:It must refer to a file in the same directory or in a subdirectory as the configuration file.。そしてまた、ファイルリストに:It can reside outside the directory of the configuration file itself.
フランクホンマー

2
appSettings要素の更新されたリンク- docs.microsoft.com/en-us/dotnet/framework/configure-apps/...
ジャロッド
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.