Web.config文件中appSettings节点的配置
1
2
3
|
<
appSettings
>
<
add
key
=
"NeedLoginCode"
value
=
"Not"
/>
</
appSettings
>
|
随着系统的深入开发,越来越多的add节点会被加入到appSettings节点中,单服环境、内网测试环境、外网测试环境、正式环境,不同的环境中同一个add节点的value可能会是不同的,于是可能会出现以下的配置,对不同的环境做不同的配置,然后把不属于要发布到的环境的配置注释掉:
不同环境下对同一个appSettings的add节点进行配置
1
2
3
4
5
6
7
8
|
<
appSettings
>
<!-- 登录是否需要验证码:单服、内网测试 -->
<
add
key
=
"NeedLoginCode"
value
=
"Not"
/>
<!-- 登录是否需要验证码:外网测试 -->
<!-- <add key="NeedLoginCode" value="Num"/> -->
<!-- 登录是否需要验证码:正式平台 -->
<!-- <add key="NeedLoginCode" value="NumAndChar"/> -->
</
appSettings
>
|
这样子做带来的不便是每次发布都要使用相应的节点,把不对应的节点注释掉,并且appSettings节点膨胀得厉害,看起来有点恶心...
之前在网上找资料的时候发现appSettings节点是可以使用外联文件来配置的,做法比较简单,把appSettings节点抽出来放到一个单独的文件中去,例如我们在根目录的下的configs目录创建一个IntranetAppsettings.xml,这个文件的内容如下:
configs/IntranetAppsettings.xml
1
2
3
4
5
6
7
|
<?
xml
version
=
"1.0"
encoding
=
"utf-8"
?>
<!-- 单服、内网测试的appSettings配置 -->
<
appSettings
>
<!-- 登录是否需要验证码 -->
<
add
key
=
"NeedLoginCode"
value
=
"Not"
/>
<!-- 其他的配置... ... -->
</
appSettings
>
|
有了上面的文件后,Web.config文件的appSettings节点修改如下,把configs/IntranetAppsettings.xml文件链接到Web.config文件的appSettings节点:
修改后的Web.config文件
1
2
3
4
|
<?
xml
version
=
"1.0"
encoding
=
"utf-8"
?>
<
configuration
>
<
appSettings
configSource
=
"configs/IntranetAppsettings.xml"
/>
</
configuration
>
|
同样的道理,创建另外几个和configs/IntranetAppsettings.xml类似的文件,用于做其他环境的配置,在发布的时候,只要修改Web.config文件中appSettings节点的configSource属性就OK鸟~