在有些情况下,要在代码中读取一种全局变量,把这种全局变量放在web.config是一种常见的手段。但是这个变量不会一个固定的值,会根据实际情况而发生变化,比如在需要读取一个配置文件的路径,而这个路径是站点发布的实际硬盘路径,如果直接是编译时状态,没有问题。但是如果站点iis更换路径,就需要修改这个web.config中的参数。如果能将这个编译时状态修改为运行时状态,那将更为合理和方便。这就需要存在一种在代码中能够动态修改web.config的方案。
![](https://i-blog.csdnimg.cn/blog_migrate/8f900a89c6347c561fdf2122f13be562.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/961ddebeb323a10fe0623af514929fc1.gif)
1 /// <summary> 2 /// 写入web.config 3 /// </summary> 4 /// <param name="item">appSettings等</param> 5 /// <param name="key">键</param> 6 /// <param name="value">值</param> 7 public void WriteConfig(string item, string key, string value) 8 { 9 if (item == "") 10 { 11 item = "appSettings"; 12 } 13 Configuration config = System.Web.Configuration.WebConfigurationManager.OpenWebConfiguration(System.Web.HttpContext.Current.Request.ApplicationPath); 14 AppSettingsSection appSection = (AppSettingsSection)config.GetSection(item); 15 if (appSection.Settings[key] == null) 16 { 17 appSection.Settings.Add(key, value); 18 config.Save(); 19 } 20 else 21 { 22 appSection.Settings.Remove(key); 23 appSection.Settings.Add(key, value); 24 config.Save(); 25 } 26 }