C# 使用ConfigurationManager.RefreshSection()时丢失会话变量

C# 使用ConfigurationManager.RefreshSection()时丢失会话变量,c#,asp.net,session,configurationmanager,C#,Asp.net,Session,Configurationmanager,我有一个网站,并有多个域指向这一点。 在使用web访问时的网站代码中,我使用ConfigurationManager更改每个域的连接字符串基。暗号 Session["Key"] = "KeyID"; var connectionStringsSection = (ConnectionStringsSection)configuration.GetSection("connectionStrings"); string fullConnect = "New Stri

我有一个网站,并有多个域指向这一点。 在使用web访问时的网站代码中,我使用ConfigurationManager更改每个域的连接字符串基。暗号

     Session["Key"] = "KeyID"; 
     var connectionStringsSection = (ConnectionStringsSection)configuration.GetSection("connectionStrings");
     string fullConnect = "New String Connnect";
     connectionStringsSection.ConnectionStrings["Name"].ConnectionString
        = fullConnect;
     configuration.Save();
     ConfigurationManager.RefreshSection("connectionStrings");
但在更改连接字符串之前,我丢失了所有会话变量初始化(如会话[“Key”])。
除了kip我的Session变量,我怎么做?

如果更新Web.config文件中的连接字符串,那么Session肯定会被破坏。要防止这种情况,请在Web.config文件中设置多个连接字符串,并且可以在.cs文件中管理所需的任何连接字符串

 <connectionStrings>
    <add name="String1"
         connectionString="CONNECTION STRING1"
         providerName="System.Data.SqlClient" />
    <add name="String2"
         connectionString="CONNECTION STRING2"
         providerName="System.Data.SqlClient" />
</connectionStrings>

Tks你的答案,但我的项目使用EF,所以我只改变包含的连接字符串。我的另一个问题。我可以将url示例“www.abc.com/abc”重定向到网站“www.abc.com”吗?是的,您可以使用路由重定向url。
foreach (ConnectionStringSettings cstring in System.Configuration.ConfigurationManager.ConnectionStrings)
{
    //use cstring.name
}