ASP.NET web.config:configSource vs. 文件属性



在 ASP.NET 应用程序中的web.config文件中,配置的某些部分(如appSettingsconnectionStrings(支持属性fileconfigSource

使用 file -属性和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
  • 使用 Configuration.AppSettings.Settings.Add API 将导致所有设置合并回 Configuration.Save 调用的主.config
  • 自 .NET 1.1 起
  • 如果文件不存在,则不会引发异常。

configSource属性

  • 可以应用于配置文件的大部分部分,而不仅仅是appSettings
  • 将用外部文件覆盖整个部分不合并
  • 可能导致 Web 应用程序重新启动
  • http://msdn.microsoft.com/en-US/library/system.configuration.sectioninformation.configsource(v=vs.100(.aspx
  • 使用 Configuration.AppSettings.Settings.Add API 将导致将所有设置添加到 Configuration.Save 调用的 configSource 中指定的文件中。
  • 自 .NET 2.0 起
  • 如果配置源文件不存在,则会引发System.Configuration.ConfigurationErrorsException

file 属性指定包含自定义设置的外部文件,就像在 web.config 文件的 appSettings 条目中所做的那样。同时,在 configSource 属性中指定的外部文件包含为其声明 configSource 的部分的设置。例如,如果使用页面部分的 configSource 属性,则外部文件将包含页面部分的设置。

外部配置中声明的自定义设置在 file属性将与appSettings中的设置合并 部分web.config。与此同时,configSource 不支持合并,这意味着您必须移动整个 部分设置到外部文件中。

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

最新更新