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

 

都是比较简单的,老鸟绕行勿喷,如有问题也请随时提出,在此也随手记一笔,也希望能帮助到不太熟悉的朋友些!

 

posted @ 2022-11-23 18:30  HI_Hub_MI  阅读(78)  评论(0编辑  收藏  举报