网站中大部分配置存储在web.config的appSettings节中,可以通过System.Web.Configuration.WebConfigurationManager.AppSettings.Get读取相应的节,如何设置这些节点的值并保存呢?
修改web.config的内容可以使用
Configuration cfg = System.Web.Configuration.WebConfigurationManager.OpenWebConfiguration(Request.ApplicationPath);
AppSettingsSection appSetting = cfg.AppSettings;
appSetting.Settings["a"].Value = "changed by application";
cfg.Save();
但是请注意修改web.config中的任何内容,都会导致一次application 重起,会丢失当前的session, application, cache中的所有信息。
建议的做法是在当前的站点中再加入一个config文件,修改自己加入的config文件。
第二种使用xmldocument的方式
XmlDocument webconfigDoc = new XmlDocument();
string filePath = HttpContext.Current.Request.PhysicalApplicationPath + @"/web.config";
//设置节的xml路径
string xPath = "/configuration/appSettings/add[@key='?']";
//加载web.config文件
webconfigDoc.Load(filePath);
//找到要修改的节点
XmlNode passkey = webconfigDoc.SelectSingleNode(xPath.Replace("?","SysAdminPass"));
//设置节点的值
passkey.Attributes["value"].InnerText = strNewpwd;
//保存设置
webconfigDoc.Save(filePath);