很多时候,我们可能会在中动态的修改配置文件,我们可以使用如下代码中涉及到的类来完成配置文件,下面的代码是修改connectionstring的例子:
System.Configuration.Configuration c = System.Web.Configuration.WebConfigurationManager.OpenWebConfiguration("~");
c.ConnectionStrings.ConnectionStrings.Clear();
ConnectionStringSettings s = new ConnectionStringSettings();
s.ProviderName = "System.Data.OleDb";
s.ConnectionString = "Provider=Microsoft.oledb.jet.4.0;data source=c:\\abc.mdb";
s.Name = "myAccess";
c.ConnectionStrings.ConnectionStrings.Add(s);
c.Save();
但是因为安全性的关系, 不允许用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");
尽量不要修改web.config文件
web.config的改动由aspnet_wp进程监视,如果有改动,因为会导致web应用程序重启,降低性能,所有的Session会重置
但是不建议动态修改web.config的值,因为会导致web应用程序重启,降低性能。