之前由於上線驗證需要各種修改配置,需要運維同事處理,太麻煩,今天用程式處理了修改配置檔案,一勞永逸,小記下:
[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);
”只會更改在快取中,不會將修改應用到配置檔案,應用在重啟之後修改將失效。