Answers:
这是一些代码:
var configuration = WebConfigurationManager.OpenWebConfiguration("~");
var section = (ConnectionStringsSection)configuration.GetSection("connectionStrings");
section.ConnectionStrings["MyConnectionString"].ConnectionString = "Data Source=...";
configuration.Save();
Configuration config = System.Web.Configuration.WebConfigurationManager.OpenWebConfiguration("~");
ConnectionStringsSection section = config.GetSection("connectionStrings") as ConnectionStringsSection;
//section.SectionInformation.UnprotectSection();
section.SectionInformation.ProtectSection("DataProtectionConfigurationProvider");
config.Save();
由于web.config文件是xml文件,因此可以使用xmldocument类打开web.config。从您要更新的xml文件中获取节点,然后保存xml文件。
这是URL,它更详细地说明了如何以编程方式更新web.config文件。
http://patelshailesh.com/index.php/update-web-config-以编程方式
注意:如果对web.config进行任何更改,ASP.NET会检测到更改,它将重新加载您的应用程序(回收应用程序池),其结果是保存在Session,Application和Cache中的数据将丢失(假定会话状态)是InProc且未使用状态服务器或数据库)。
这是我用来更新AppSettings的方法,适用于Web和桌面应用程序。如果需要编辑connectionStrings,则可以从中获取该值System.Configuration.ConnectionStringSettings config = configFile.ConnectionStrings.ConnectionStrings["YourConnectionStringName"];
,然后使用设置一个新值config.ConnectionString = "your connection string";
。请注意,如果您在本connectionStrings
节中有任何评论,Web.Config
这些评论将被删除。
private void UpdateAppSettings(string key, string value)
{
System.Configuration.Configuration configFile = null;
if (System.Web.HttpContext.Current != null)
{
configFile =
System.Web.Configuration.WebConfigurationManager.OpenWebConfiguration("~");
}
else
{
configFile =
ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);
}
var settings = configFile.AppSettings.Settings;
if (settings[key] == null)
{
settings.Add(key, value);
}
else
{
settings[key].Value = value;
}
configFile.Save(ConfigurationSaveMode.Modified);
ConfigurationManager.RefreshSection(configFile.AppSettings.SectionInformation.Name);
}