如何通过代码修改web.config文件



网站中大部分配置存储在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);  


你可能感兴趣的:(C#Web開發,知识点(做项目))