如何拆分web.config?

7
我想把web.config文件拆分开来,并将其中的设置移到一个外部文件中。
<customErrors mode="Off" defaultRedirect="~/Home/ErrorPage">
  <error statusCode="403" redirect="~/Home/ErrorPage"/>
  <error statusCode="404" redirect="~/Home/ErrorPage"/>
</customErrors>

<system.net>
  <mailSettings>
    <smtp deliveryMethod="Network" from="noreplay@company.no">
      <network host="smtp.company.com" port="25" password="" userName=""/>
    </smtp>
  </mailSettings>
</system.net>

I use

    <appSettings file="my.config"/> 

将我的设置放在外面。

但标准设置怎么办?

2个回答

9
许多(尽管不是全部)部分都具有configSource属性,您可以非常类似于使用appSettings部分的file属性使用它。 更多信息请参见MSDN
  <customErrors configSource="MyErrors.config" /> 

  <system.net>
    <mailSettings>
      <smtp configSource="MySmtp.config" />
    </mailSettings>
  </system.net>

好的解决方案。谢谢!缺点是我必须为每个设置创建两个配置文件。 - podeig
1
configSource 可以引用同一个文件来配置多个部分,还是需要为每个部分创建单独的文件? - crush

0

你可以将文件的某些部分分离出来,但不能将所有内容都分离到不同的文件中。

此外,你应该考虑这样做能带来什么好处。


1
获得的一个好处是环境配置不需要为每个环境创建单独的构建配置,只需利用 web.config 转换即可(这实际上是滥用系统)。您可以将这些专门的外部配置文件保留在环境系统中,并将可能从发布到发布更改的全局配置保留在主要的 web.config 中。 - crush

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接