是否可以在运行时更改ASP.NET Web.Config值而无需重新加载应用程序域?

sch*_*ode 2 asp.net iis web-config

是否可以在运行时更改Web.Config中的数据库连接字符串值而无需重新加载应用程序域?这样做的原因是:

  1. 我正在构建一个使用一个代码实例和多个数据库实例方法的多租户应用程序,因此必须能够在运行时为不同的租户用户更改web.config中的数据库连接字符串.

  2. 当您使用实体框架/ LINQ to SQL等,数据集等时,ADO.NET始终在web.config中注入数据库连接字符串.

所以我可能不得不做这样奇怪的事情.希望它足够清楚.非常感谢!

NET*_*rts 8

对的,这是可能的.试试这个

System.Configuration.Configuration conf = WebConfigurationManager.OpenWebConfiguration(Server.MapPath);
conf.ConnectionStrings.ConnectionStrings["comp1"].ConnectionString = _connection_comp1;
conf.ConnectionStrings.ConnectionStrings["comp2"].ConnectionString = _connection_comp2;
conf.AppSettings.Settings["CompanyCode"].Value = _company_code;
conf.Save();
Run Code Online (Sandbox Code Playgroud)