web.config就是一个xml文件,你会操作xml就应该会修改。但是不建议动态修改web.config的值,因为会导致web应用程序重启,降低性能。

解决方案 »

  1.   

    此处的修改可以通过XML文件的形式来修改,最简单的方法:
    Dim ds As New DataSet()
                ds.ReadXml("d:\web.config")
                ds.Tables("add").Rows(0)("value") = 50
                ds.AcceptChanges()
                ds.WriteXml("d:\web.config")
      

  2.   

    using System;
    using System.Collections;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Web;
    using System.Web.SessionState;
    using System.Web.UI;
    using System.Web.UI.WebControls;
    using System.Web.UI.HtmlControls;
    using System.Xml ;
    namespace WebApplication1
    {
    /// <summary>
    /// Summary description for WebForm1.
    /// </summary>
    public class WebForm1 : System.Web.UI.Page
    {
    protected System.Web.UI.WebControls.TextBox TextBox1;
    protected System.Web.UI.WebControls.DropDownList DropDownList1;
    protected System.Web.UI.WebControls.Button Button1;public WebForm1()
    {
    Page.Init += new System.EventHandler(Page_Init);
    }private void Page_Load(object sender, System.EventArgs e)
    {
    if(!Page.IsPostBack)
    {
    //打开某文件(假设WEB。CONFIG在根目录中)
    string filename=Server.MapPath("/") + @"\web.config";
    XmlDocument  xmldoc= new XmlDocument();
    xmldoc.Load(filename);XmlNodeList topM=xmldoc.DocumentElement.ChildNodes;
    foreach(XmlElement element in topM)
    {
    if(element.Name.ToLower()=="appsettings")
    {
    XmlNodeList _node=element.ChildNodes;
    if ( _node.Count >0 )
    {
    DropDownList1.Items.Clear();
    foreach(XmlElement el in _node)
    {
    DropDownList1.Items.Add(el.Attributes["key"].InnerXml);
    }
    }
    }
    }
    }
    }private void Page_Init(object sender, EventArgs e)
    {
    InitializeComponent();
    }#region Web Form Designer generated code
    /// <summary>
    /// Required method for Designer support - do not modify
    /// the contents of this method with the code editor.
    /// </summary>
    private void InitializeComponent()
    {    
    this.Button1.Click += new System.EventHandler(this.Button1_Click);
    this.Load += new System.EventHandler(this.Page_Load);}
    #endregionprivate void Button1_Click(object sender, System.EventArgs e)
    {
    string filename=Server.MapPath("/") + @"\web.config";
    XmlDocument  xmldoc= new XmlDocument();
    xmldoc.Load(filename);XmlNodeList topM=xmldoc.DocumentElement.ChildNodes;
    foreach(XmlElement element in topM)
    {
    if(element.Name.ToLower()=="appsettings")
    {
    XmlNodeList _node=element.ChildNodes;
    if ( _node.Count >0 ) 
    {
    foreach(XmlElement el in _node)
    {
    if(el.Attributes["key"].InnerXml.ToLower()==this.DropDownList1.SelectedItem.Value.ToLower())
    {
    el.Attributes["value"].Value=this.TextBox1.Text;
    }
    }
    }
    }
    }
    xmldoc.Save(filename);
    }
    }
    }
      

  3.   

    .net因为安全性的关系, 不允许用Configuration的类对Web.config进行修改, 只能用操作xml对象的形式进行修改XmlDocument doc = new XmlDocument();
    doc.Load("Web.config");
    XmlNode node = doc.DocumentElement.SelectSingleNode("appSettings");
    node.SelectSingleNode("descendant::add[@key='Value_Inform']").Attributes[1].Value = "111";
    doc.DocumentElement.SelectSingleNode("appSettings").InnerXml = node.InnerXml;
    doc.Save("Web.config");
      

  4.   

    不要这样做web.config的改动由aspnet_wp进程监视,如果有改动,应用程序会重起,所有的Session会重置
      

  5.   

    同意: eshusheng(.NET生疏) 的意见!