[web.config]如何灵活使用配置文件
摘要
在实际项目中,经常遇到比较多的环境,比如开发环境,测试环境,生产环境。对于这些环境,可能会有不同接口调用,不同的数据库连接字符串等等。那么该如何实现不同环境的参数快速切换呢?当然,最笨的方式就是,发布前,针对不同的环境,注释放开注释的操作。这也是经常使用的方法,如果环境较少,这种还可以应付,如果环境较多,或者那天不在状态,发布的时候,忘记注释放开某些注释,就造成不必要的麻烦。
如何解决
配置文件中Transformation,可以快速解决环境切换带来的麻烦。
一个例子
新建一个测试mvc应用
在上面可以看出,默认站点创建的时候,有两种配置文件,debug和release。分别对应下面两种环境:
发布的时候,切换到release环境,那么就是使用的Web.Release.config配置文件。
添加生成环境配置,选择上图的配置管理器
新建配置
名称为Produce
1、查看web.config内容,比如这里有这样的一个数据库连接字符串
<connectionStrings>
<add connectionString="debugconn............" name="mydb"/>
</connectionStrings>
2、查看web.produce.config
<?xml version="1.0" encoding="utf-8"?> <!-- 有关使用 web.config 转换的详细信息,请访问 http://go.microsoft.com/fwlink/?LinkId=125889 --> <configuration xmlns:xdt="http://schemas.microsoft.com/XML-Document-Transform">
<!--
在下例中,“SetAttributes”转换将更改
“connectionString”的值,以仅在“Match”定位器
找到值为“MyDB”的特性“name”时使用“ReleaseSQLServer”。 <connectionStrings>
<add name="MyDB"
connectionString="Data Source=ReleaseSQLServer;Initial Catalog=MyReleaseDB;Integrated Security=True"
xdt:Transform="SetAttributes" xdt:Locator="Match(name)"/>
</connectionStrings>
-->
<connectionStrings>
<add name="mydb"
connectionString="Data Source=ReleaseSQLServer;Initial Catalog=MyReleaseDB;Integrated Security=True"
xdt:Transform="SetAttributes" xdt:Locator="Match(name)"/>
</connectionStrings>
<system.web>
<compilation xdt:Transform="RemoveAttributes(debug)" />
<!-- 在下例中,“Replace”转换将替换
web.config 文件的整个 <customErrors> 节。
请注意,由于
在 <system.web> 节点下仅有一个 customErrors 节,因此不需要使用“xdt:Locator”特性。 <customErrors defaultRedirect="GenericError.htm"
mode="RemoteOnly" xdt:Transform="Replace">
<error statusCode="" redirect="InternalError.htm"/>
</customErrors>
-->
</system.web>
</configuration>
xdt:Transform="Replace":转换规则为替换。
xdt:Locator="Match(name),:匹配规则,匹配name
那么就是用Web.Produce.config中的这个配置节用来替换web.config中name为mydb的配置项。
测试
发布站点
选择Produce配置文件,然后发布,查看发布后的web.config文件,是否替换成功。
通过上图,你会发现,发布后使用的是我们希望的数据库连接字符串。
Transformation常用语法
可参考这篇文章:
ASP.NET 4.0 新特性--Web.Config Transformation(原创)
总结
通过这种方式,虽然刚开始规则有些麻烦,但是麻烦一次,受益终身不是么。如果还考,注释,然后释放注释的操作,每次都要操作,对新来的小伙伴无疑是非常坑的。
[web.config]如何灵活使用配置文件的更多相关文章
- ASP.NET 多环境下配置文件web.config的灵活配置
调试,发布Asp.net程序的时候,开发环境和发布环境的Web.Config往往不同,比如connectionstring等.如果常常有调试,发布的需求,就需要常常修改web.config文件,这往往 ...
- ASP.NET 多环境下配置文件web.config的灵活配置---转
注意:本功能在.Net Core中已经不可用,暂时需手动修改web.config中的信息,或者将其设置在appsettings.XXX.json中,然后再使用web.config中的环境变量来制定使用 ...
- ASP.NET Web.config文件的配置(Configuration API)
本次我们讨论主要聚焦在以下Web.config配置文件的设置值的读取. 1.<connectionString />连接字符串的读取. 2.<appSettings />应用程 ...
- Web.Config Transformation配置灵活的配置文件
使用Web.Config Transformation配置灵活的配置文件 发布Asp.net程序的时候,开发环境和发布环境的Web.Config往往不同,比如connectionstring等.如果常 ...
- 使用Web.Config Transformation配置灵活的配置文件
发布Asp.net程序的时候,开发环境和发布环境的Web.Config往往不同,比如connectionstring等.如果常常有发布的需求,就需要常常修改web.config文件,这往往是一件非常麻 ...
- Web.config配置文件详解
整理了一下ASP.NET Web.config配置文件的基本使用方法.很适合新手参看,由于Web.config在使用很灵活,可以自定义一些节点.所以这里只介绍一些比较常用的节点. <?xml v ...
- [转]Web.config配置文件详解(新手必看)
本文转自:http://www.cnblogs.com/gaoweipeng/archive/2009/05/17/1458762.html 花了点时间整理了一下ASP.NET Web.config配 ...
- 转:Web.config配置文件详解(新手必看)
转:http://www.cnblogs.com/gaoweipeng/archive/2009/05/17/1458762.html 花了点时间整理了一下ASP.NET Web.config配置文件 ...
- Web.config配置文件
优点:Web.config配置文件使得ASP.NET应用程序的配置变得灵活高效和容易实现并为ASP.NET应用提供了可扩展的配置,使得应用程序能够自定义配置,同时还包括的优点有:配置设置易读性.更新的 ...
随机推荐
- mongoexport导出csv中文乱码
在用mongoexport导出csv文件时,发现数据库中的中文在excel中都显示为乱码,用notepad打开则正常. 解决办法: 在notepad中,将编码格式改为UTF-8,保存,再用excel打 ...
- plsql 用法和技巧
1.导入csv文件 2.保存登录的密码
- 分析占用了大量CPU处理时间的是Java进程中哪个线程
下面是详细步骤: 1. 首先确定进程的 ID ,可以使用 jps -v 或者 top 命令直接查看 2. 查看该进程中哪个线程占用大量 CPU,执行 top -H -p [PID] 结果如下: 可以发 ...
- 解决UnicodeDecodeError: 'ascii' codec can't decode byte 0xcf in position 7: ordinal not in range(128)
在Windows下同时装了Python2和Python3,但是在使用命令给pip更新的时候,出现了以下错误: 解决办法:修改mimetypes.py文件,路径位于python的安装路径下的Lib\mi ...
- 洛谷P4549裴蜀定理
传送门 #include <iostream> #include <cstdio> #include <cstring> #include <algorith ...
- linux pwd指令C实现
linux pwd指令C实现 研究实现pwd所需的系统调用 我们可以通过man命令和grep命令来获取我们所需要的系统调用函数信息 man chdir Linux pwd命令用于显示工作目录. 执行p ...
- hdu 5443 (2015长春网赛G题 求区间最值)
求区间最值,数据范围也很小,因为只会线段树,所以套了线段树模板=.= Sample Input3110011 151 2 3 4 551 21 32 43 43 531 999999 141 11 2 ...
- [转] 在安卓设备上使用 Chrome 远程调试功能
你的网页内容在移动设备上的体验可能和电脑上完全不同.Chrome DevTools 提供了远程调试功能,这让你可以在安卓设备上实时调试开发的内容. 安卓远程调试支持: 在浏览器选项卡中调试网站. 在原 ...
- IE下css bug集合-翻译自haslayout.net
概述IE浏览器以不支持大量的css 属性出名,同时也因其支持的css属性中存在大量bug. 本页列举了IE下的一些问题,实例样本和一些我们已知的解决方法. 尽管我已经尽力按照它们本来的性质对它们进行分 ...
- linux convert mp3 to wav and opus to wav
link : https://www.cyberciti.biz/faq/convert-mp3-files-to-wav-files-in-linux/ Install mpg321 or mpg ...