如标题,如何把 asp.net webconfig的appSettings分离到单独文件 (必须是xxx.config文件),为什么要这么做?原因如下:
其一:如果我的配置节很多的话web.config会变得很大,不易管理和查找;
其二:程序运行后对web.config的改动会引起站点的重启,如果系统管理员修改配置文件也会引起系统站点重启,这样会影响系统的运行。
做法如下:
第一步,在web.config文件的appSettings节点内添加configSource属性,其值为"分离配置文件"的路径,并清空该节点内的子元素如下代码 [注意:configSouce中的文件路径只能为相对物理路径,也就是只能为反斜杠(\),不能用斜杠(/)。]:
<appSettings configSource="BaseInfo.config"> <!-- <add key="webpages:Version" value="2.0.0.0" /> <add key="webpages:Enabled" value="false" /> <add key="PreserveLoginUrl" value="true" /> <add key="ClientValidationEnabled" value="true" /> <add key="UnobtrusiveJavaScriptEnabled" value="true" /> --> </appSettings>
<?xml version="1.0" encoding="utf-8"?> <appSettings> <add key="see" value="我来自baseinfo文件!" /> </appSettings>
Configuration cfg = System.Web.Configuration.WebConfigurationManager.OpenWebConfiguration(Request.ApplicationPath); AppSettingsSection ass = cfg.AppSettings; //读取 string settingValue = ass.Settings["see"].Value; //修改 ass.Settings["see"].Value = "changed by application"; cfg.Save();//写后,注意保存