我有一个网站,并且有多个域名指向此。 在我的网站代码中,当使用访问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");
但是在连接字符串更改之前我丢失了每个Session变量初始化(如Session [“Key”])。 我怎么能这样做但是我的会话变量?
答案 0 :(得分:1)
如果更新Web.config文件中的连接字符串,那么会话肯定会破坏。要防止这种情况,请在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>
您可以使用“ForEach”循环在代码中建立连接。
foreach (ConnectionStringSettings cstring in System.Configuration.ConfigurationManager.ConnectionStrings)
{
//use cstring.name
}