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

Seb*_*son 179 asp.net configuration web-config configsource

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

使用file-attribute和configSource-attribute有什么区别?什么时候应该使用哪个属性,你可以同时使用它们吗?

<?xml version="1.0"?>
<configuration>
  <appSettings file="AppSettings.config">
  </appSettings>
  <connectionStrings configSource="ConnectionStrings.config">      
  </connectionStrings>
  <!-- ... -->
</configuration>
Run Code Online (Sandbox Code Playgroud)

Mas*_*uso 287

file 属性

configSource 属性

file属性指定包含自定义设置的外部文件,就像在web.config文件的appSettings条目中一样.同时,configSource属性中指定的外部文件包含您声明configSource的部分的设置.例如,如果使用pages部分的configSource属性,则外部文件将包含pages部分的设置.

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

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

  • 此外,"文件"属性允许您指定直接目录树之外的文件,这对于在不同站点之间共享公共设置很重要.不幸的是,"configsource"属性将您限制在currrent树中的文件,因此对于共享设置,您需要在IIS中指定虚拟目录. (10认同)
  • 我上面的评论并不完全正确,我显然错过了有点随意的五分钟窗口来编辑它!您无法在IIS中设置虚拟目录以允许"configsource"文件存在于直接目录树之外.所以这真的是非常有限的.我通过使用连接点(或NTFS硬链接)解决了它,但它并不完全相当...... (6认同)
  • 我想添加到configSource列表:`它必须引用与配置文件相同的目录或子目录中的文件.还有文件列表:`它可以驻留在配置文件本身的目录之外. (4认同)
  • 如果调用 `Save()` 将值写入主 .config 文件,但这些值被外部文件中的(旧)值覆盖,那么这种设计如何不被严重破坏?我错过了什么吗? (2认同)
  • 更新了appSettings元素的链接 - https://docs.microsoft.com/en-us/dotnet/framework/configure-apps/file-schema/appsettings/appsettings-element-for-configuration (2认同)