在一个工作项目或者工作小组中,有可能经常要转换工作的调试环境,比如开发环境,测试环境,部署环境,这样有可能要对web.config文件进行修改或改动,比如要改数据库的连接字符串,角色配置,安全配置环境等,一不小心,很容易会发生遗漏等错误.在asp.net 2.0的web.config文件中,新加入了可以引入外部文件的新特性,
使到我们可以先预先搞好几个文件,比如将经常要改动的部分,如数据库连接串部分等,按不同的开发环境,分别写成若干个xml文件,然后在web.config中把它们按需要调入进来.比如
我们先建立两个目录,一个叫test,一个叫developer,分别存放测试和开发时,用到的不同环境,比如
在devloper文件中建立一个developerconnectionstring.xml,内容如下
<connectionStrings>
<add name="connstr" connectionString=
"data source=.sqlexpress;initial catalog=
northwind;integrated security=true"
providerName="System.Data.SqlClient"/>
</connectionStrings>
再建立一个developerappsetingstring.xml如下<appSettings>
<add key="autoemail" value="abc@abc.com /> </appSettings>
再建立一个developermembership.xml如下
<membership defaultProvider="Northwind">
<providers>
<add name="Northwind"
type="System.Web.Security.SqlMembershipProvider"
connectionStringName="connstr"/>
</providers>
</membership>
同样道理,可以在test目录下,也建立相关类似的xml文件,然后,在web.config中,可以这样调用了
<?xml version="1.0"?>
<configuration>
<appSettings configSource="developerdeveloperappsetingstring.xml"/>
<connectionStrings
configSource="developerdeveloperconnectionstring.xml" />
<system.web>
<membership
configSource="developerdevelopermembership.xml"/>
<compilation debug="true"/>
<authentication mode="Forms"/>
<authorization>
<deny users="?"/>
</authorization>
</system.web>
</configuration>
可以看到,在web.config中,可以通过configsource属性来读取外部文件