Asp.net

ASP.NET web.config:configSource 與文件屬性

  • August 4, 2011

web.configASP.NET 應用程序的 -file 中,配置的某些部分(如appSettingsconnectionStrings)支持屬性**fileconfigSource**。

file使用-attribute 和-attribute有什麼區別configSource?什麼時候應該使用哪個屬性,可以同時使用嗎?

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

file屬性

  • 指定包含自定義應用程序配置設置的外部文件的相對路徑
  • 具體到appSettings部分
  • 合併(並覆蓋).config 文件中的設置
  • 修改指定文件時不會導致web應用重啟
  • <http://msdn.microsoft.com/en-US/library/ms228154(v=vs.100).aspx>
  • 使用配置應用設置設置添加API 將導致所有設置合併回 Configuration 上的.config設置。保存通話。
  • 從 .NET 1.1 開始
  • 如果文件不存在,則不會拋出異常。

configSource屬性

  • 可以應用於配置文件的大部分部分,而不僅僅是appSettings
  • 將用外部文件覆蓋**整個部分,**不合併
  • 可以導致 Web 應用程序重新啟動
  • <http://msdn.microsoft.com/en-US/library/system.configuration.sectioninformation.configsource(v=vs.100).aspx>
  • 使用配置應用設置設置添加API 將導致將所有設置添加到ConfigurationconfigSource中指定的文件中。保存通話。
  • 從 .NET 2.0 開始
  • System.Configuration.ConfigurationErrorsException如果配置源文件不存在則拋出。

file屬性指定一個包含自定義設置的外部文件,就像您在 web.config 文件的 appSettings 條目中所做的那樣。同時,屬性中指定的外部文件configSource包含您為其聲明 configSource 的部分的設置。例如,如果您使用configSourcepages 部分的屬性,則外部文件將包含 pages 部分的設置。

在屬性中指定的外部配置中聲明的自定義設置 將與文件中 部分中file的設置合併。同時, 不支持合併,意味著您必須將整個部分設置移動到外部文件中。appSettings``web.config``configSource

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

引用自:https://stackoverflow.com/questions/6940004