Asp.net修改配置文件(web.config)
Asp.net修改配置文件(web.config)
修改web.config文件appsettings配置节中的add里的value属性2007年11月14日 星期三 上午 10:39这个函数主要使用xmldocument来解析web.config.并用selectsinglenode()方法来定位要修改的配置节。要注意的是最后程序要save(),所以,你的apsnet帐号必须对web.config拥有写权限.
/// <summary>
/// 修改web.config文件appsettings配置节中的add里的value属性
/// </summary>
/// <remarks>
/// 注意,调用该函数后,会使整个web application重启,导致当前所有的会话丢失
/// </remarks>
/// <param name="key">要修改的键key</param>
/// <param name="strvalue">修改后的value</param>
/// <exception cref="">找不到相关的键</exception>
/// <exception cref="">权限不够,无法保存到web.config文件中</exception>
public void Modify(string key, string strvalue)
{
string xpath = "/configuration/appSettings/add[@key=?]";
XmlDocument domwebconfig = new XmlDocument();
domwebconfig.Load(HttpContext.Current.Server.MapPath("/web.config"));
XmlNode addkey = domwebconfig.SelectSingleNode((xpath.Replace("?", key)));
if (addkey == null)
{
throw new ArgumentException("没有找到<add key=" + key + " value=.../>的配置节");
}
addkey.Attributes["value"].InnerText = strvalue;
domwebconfig.Save(HttpContext.Current.Server.MapPath("/web.config"));
}
//--------------------------------------------------------------------------------------------------//
private void SetConfig(string name,string values)
{
string filename=this.MapPath(this.TemplateSourceDirectory) + @"\web.config";
XmlDocument xmldoc= new XmlDocument();
xmldoc.Load(filename);
XmlNodeList topM=xmldoc.DocumentElement.ChildNodes;
IEnumerator it = topM.GetEnumerator();
while(it.MoveNext())
{
XmlElement element =(XmlElement)it.Current;
if(element.Name.ToLower()=="appsettings")
{
XmlNodeList _node=element.ChildNodes;
if ( _node.Count >0 )
{
foreach(XmlElement el in _node)
{
if(el.Attributes["key"].InnerXml.Trim()==name)
{
el.Attributes["value"].Value=values;
}
}
}
}
}
xmldoc.Save(filename);
}
select * from titles where title_id like 'BU1%'
浙公网安备 33010602011771号