2017-02-18 7 views
0

У меня есть веб-сайт и у вас есть точка доступа к домену. В моем коде веб-сайта, когда вы используете доступ к сети, я использую ConfigurationManager, чтобы изменить строку строки Connect каждого домена. Код сильфонныхПотерянная переменная сеанса при использовании ConfigurationManager.RefreshSection()

 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 моя переменная сеанса ?.

ответ

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 
} 
+0

Tks ваш ответ, но мой проект использует EF, поэтому я только chage содержит строку подключения. –

+0

Мой вопрос orther. могу ли я повторить пример URL «www.abc.com/abc» на веб-сайт «www.abc.com» –

+0

Да, вы можете перенаправить URL-адрес с помощью маршрутизации. –

Смежные вопросы