更改连接字符串并在运行时重新加载app.config

50 c# configuration

当我使用此代码更改连接字符串时,它不会app.config在运行时重新加载.我预计它会重新加载,就像我们重新加载一样app.config.

config.ConnectionStrings.ConnectionStrings["JVVNL_NEW.Properties.Settings.JVVNL_NEWConnectionString1"].ConnectionString = ConString;
config.ConnectionStrings.ConnectionStrings["CMS_NEW.Properties.Settings.JVVNL_NEWConnectionString1"].ConnectionString = ConString;
config.Save(ConfigurationSaveMode.Modified,true);
ConfigurationManager.RefreshSection(config.ConnectionStrings.SectionInformation.SectionName);
Run Code Online (Sandbox Code Playgroud)

Bra*_*ord 85

不得不做这件事.这是适合我的代码:

var config = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);
var connectionStringsSection = (ConnectionStringsSection)config.GetSection("connectionStrings");
connectionStringsSection.ConnectionStrings["Blah"].ConnectionString = "Data Source=blah;Initial Catalog=blah;UID=blah;password=blah";
config.Save();
ConfigurationManager.RefreshSection("connectionStrings");
Run Code Online (Sandbox Code Playgroud)

  • 实际上,我刚刚测试过,**会为我更改磁盘文件. (5认同)

Cer*_*rus 6

在IIRC中,ConfigurationManager.RefreshSection需要一个字符串参数,指定要刷新的Section的名称:

ConfigurationManager.RefreshSection("connectionStrings");
Run Code Online (Sandbox Code Playgroud)

我认为,当修改ConnectionStrings元素并且不需要手动重新加载配置时,ASP.NET应用程序应该自动重新加载.