我试图在运行时为Web应用程序切换不同的数据库。关于动态更改和切换web配置中的connectionString的问题
塞纳里奥 我们有一个asp.net web应用程序,并针对不同的customers.I不同的数据库正在试图从一个共同的数据库切换特定的连接字符串值,其中我保持的映射表连接字符串,特定客户ID和密码。成功后,我从公共数据库获取连接字符串,并在运行时通过替换所选连接字符串来编辑web.config文件连接字符串部分。 我被添加以下代码登录事件
conectionString = cString;
Configuration openWebConfiguration = WebConfigurationManager.OpenWebConfiguration("~");
ConnectionStringsSection sections = openWebConfiguration.GetSection("connectionStrings") as ConnectionStringsSection;
if (sections != null)
{
sections.ConnectionStrings["ConnectionStringName"].ConnectionString = conectionString;
ConfigurationManager.RefreshSection("ConnectionStringName");
openWebConfiguration.Save();
}
我正在使用ConfigurationManager
.problem上述连接字符串阅读网页上这样做是网络配置文件正在发生变化,但使用Response.Redirect
将引发调用另一个页面后一个例外是.Exception“无法因为代码被优化或天然帧是在调用堆栈的顶部以评价表达”我可以意识到这是一件发生交叉螺纹environment.My问题是
- 上面的确切原因是什么例外?
- 哪个页面的Asp.net生命周期从web配置文件中读取设置?
- 我可以实现上述场景的正确方法是什么?
不要继续更改web.config文件,因为它会继续触发重新编译和撕裂应用程序域。 我不知道你为什么要这样做,但如果你只需要,用公用数据库的返回值打开一个连接。 – RubbleFord 2012-08-14 11:18:34
@RubbleFord - 你是对的。你能告诉我什么是实现上述场景的好方法吗? – Thabo 2012-08-14 12:10:35