仓木美绪2012作品:C# 修改web.config配置文件

来源:百度文库 编辑:偶看新闻 时间:2024/04/29 06:18:07

1、引用:using System.Xml;

using System.Web.Configuration;

2、

很多时候,我们可能会在asp.net中动态的修改配置文件,我们可以使用如下代码中涉及到的类来完成配置文件,下面的代码是修改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();

 

但是asp.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");   
   
尽量不要修改web.config文件
    
  web.config的改动由aspnet_wp进程监视,如果有改动,因为会导致web应用程序重启,降低性能,所有的Session会重置

 

 

************另一个实例参考*****************************

应用程序配置文件,对于asp.net是 web.config,对于WINFORM程序是 App.Config(ExeName.exe.config)。

配置文件,对于程序本身来说,就是基础和依据,其本质是一个xml文件,对于配置文件的操作,从.NET 2.0 开始,就非常方便了,提供了 System [.Web] .Configuration 这个管理功能的NameSpace,要使用它,需要添加对 System.configuration.dll的引用。

对于WINFORM程序,使用 System.Configuration.ConfigurationManager;

对于ASP.NET 程序, 使用 System.Web.Configuration.WebConfigurationManager;

对于配置文件内容的读取,真是太普遍不过了,如果你的程序里,没有读取配置文件内容的方面,你都不好意思拿出来用

我们以最常见的 AppSettings 小节来作为例子:

假设有如下的配置文件内容:

                  

1. 读取值:

  • Asp.Net:   System.Web.Configuration.WebConfigurationManager.AppSettings[“y”];
  • WinForm:  System.Configuration.ConfigurationManager.AppSettings[“y”];

2. 添加一项

  • ASP.NET(需要有写权限):
Configuration config = WebConfigurationManager.OpenWebConfiguration(null);  AppSettingsSection app = config.AppSettings;  app.Settings.Add("x", "this is X");  config.Save(ConfigurationSaveMode.Modified);
  • WinForm:
Configuration config = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);  AppSettingsSection app = config.AppSettings;  app.Settings.Add("x", "this is X");  config.Save(ConfigurationSaveMode.Modified);

 

3. 修改一项

  • Asp.Net
Configuration config = WebConfigurationManager.OpenWebConfiguration(null);  AppSettingsSection app = config.AppSettings;  //app.Settings.Add("x", "this is X");  app.Settings["x"].Value = "this is not Y";  config.Save(ConfigurationSaveMode.Modified);
  • WinForm
Configuration config = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);  AppSettingsSection app = config.AppSettings;  //app.Settings.Add("x", "this is X");  app.Settings["x"].Value = "this is not Y";  config.Save(ConfigurationSaveMode.Modified);

 

4. 删除一项

  • Asp.Net
Configuration config = WebConfigurationManager.OpenWebConfiguration(null);  AppSettingsSection app = config.AppSettings;  app.Settings.Remove("x");  config.Save(ConfigurationSaveMode.Modified);
  • WinForm
Configuration config = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);  AppSettingsSection app = config.AppSettings;  app.Settings.Remove("x");  config.Save(ConfigurationSaveMode.Modified);