2012-09-05 60 views
5

我想拆分web.config并将这些设置放在一个外部文件中。如何拆分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="[email protected]"> 
     <network host="smtp.company.com" port="25" password="" userName=""/> 
    </smtp> 
    </mailSettings> 
</system.net> 

我用

<appSettings file="my.config"/> 

有超出了我的设置。

但是标准设置呢?

回答

7

许多(尽管不是全部)部分具有configSource属性,您可以非常类似地使用该属性,以便如何使用appSettings部分的file属性。

More info at MSDN


<customErrors configSource="MyErrors.config" /> 

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

好的解决方案。谢谢!缺点是我必须为每个设置创建两个配置文件。 – podeig

+0

'configSource'可以为多个部分引用同一个文件,还是需要为每个部分创建一个单独的文件? – crush

0

可以分离出文件的某些部分,你不能把所有的东西到单独的文件。

你也应该考虑你通过这样做获得什么。

+0

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