之前由于上线验证需要各种修改配置,需要运维同事处理,太麻烦,今天用程序处理了修改配置文件,一劳永逸,小记下:
[HttpPost] public ActionResult SaveSetting(string key, string value) { if (!string.IsNullOrWhiteSpace(key) && !string.IsNullOrWhiteSpace(value) && ConfigurationManager.AppSettings.AllKeys.Contains(key)) { //ConfigurationManager.AppSettings.Set(key, value); //var config = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None); //winform之类应用程序的修改方式 var config = WebConfigurationManager.OpenWebConfiguration("~"); //web应用程序修改 config.AppSettings.Settings[key].Value = value; config.Save(); } return RedirectToAction("Index"); }
以上为Web应用中修改的方式,如果是winform、wpf之类使用 “
var config = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);
”即可。
使用“
ConfigurationManager.AppSettings.Set(key, value);
”只会更改在缓存中,不会将修改应用到配置文件,应用在重启之后修改将失效。