web站点 app.config和web.config那些事
关于web站点下既有app.config和web.config而且还有相同的key的全局变量,系统是如何取值的?要调配置文件该改app.config还是web.config?
那边就简单给大家总结下:
首先大家得看看本身的项目获取全局变量的方法是从哪里获取的,拿我本地一个测试项目为例,项目结构如下:
读取对应配置文件脚本如下:
public string msg = string.Empty; public string msg2 = string.Empty; public string msg3 = string.Empty; protected void Page_Load(object sender, EventArgs e) { msg = ConfigurationManager.AppSettings["mykey"]; Console.WriteLine(ConfigurationManager.AppSettings["mykey"]); ExeConfigurationFileMap exeConfigurationFileMap = new ExeConfigurationFileMap(); exeConfigurationFileMap.ExeConfigFilename = AppDomain.CurrentDomain.BaseDirectory + "Config\\app.config"; Configuration configuration = ConfigurationManager.OpenMappedExeConfiguration(exeConfigurationFileMap, ConfigurationUserLevel.None); msg2 = configuration.AppSettings.Settings["mykey"].Value; ExeConfigurationFileMap exeConfigurationFileMap_new = new ExeConfigurationFileMap(); exeConfigurationFileMap_new.ExeConfigFilename = AppDomain.CurrentDomain.BaseDirectory + "app_new.config"; Configuration configuration_new = ConfigurationManager.OpenMappedExeConfiguration(exeConfigurationFileMap_new, ConfigurationUserLevel.None); msg3 = configuration_new.AppSettings.Settings["mykey"].Value; }
运行结果如下:
找到对应使用点就很明显知道该调整对应哪个config文件,这里就不多叙述、、、
另外还有,就是web.config里面,细心的朋友就能发现,web.config下面还有web.Debug.config和web.Release.config,其实还可以加入很多种不同的web.xxx.config(配置管理器里面添加即可,不清楚可以百度下),其实这里是干嘛的用的,其实就为了方便多环境使用的,发布的时候选择对应的配置即可(如下图),不需要大家频繁修改注释配置文件,对应不同的环境使用不同的config。
比如说:我们在测试环境,就可以使用配置为Debug,生产环境就可以用Release,其他环境就可以用UAT、QA等等,里面的配置文件不同
另外需要提醒的一点就是在本地运行,不管运行选择的配置是选的那个都会优先读取web.config的配置数据
比如:
web.config :<add key="mykey" value="webconfig-123"/>
web.Debug.config :<add key="mykey" value="web.Debug-123"/>
web.Release.config :
web.Test.config :<add key="mykey" value="web.Test-123"/>
本地运行:无论配置选择Debug、Release还是Test,结果均为:webconfig-123
发布后:使用Debug配置,运行结果为:web.Debug-123
使用Release配置,运行结果为:webconfig-123 (PS:web.Release.config没有对应的mykey的配置,所以默认会获取web.config)
使用Test配置,运行结果为:web.Test-123
都是比较简单的,老鸟绕行勿喷,如有问题也请随时提出,在此也随手记一笔,也希望能帮助到不太熟悉的朋友些!