c# – 在Web Config中动态更改和切换connectionString的问题
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了c# – 在Web Config中动态更改和切换connectionString的问题,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1963字,纯文字阅读大概需要3分钟。
内容图文
![c# – 在Web Config中动态更改和切换connectionString的问题](/upload/InfoBanner/zyjiaocheng/770/2ba7c9e0d3d8401f899a2d971e2aae94.jpg)
我试图在运行时为Web应用程序切换不同的数据库.
塞纳里奥
我们有一个asp.net Web应用程序和不同客户的不同数据库.我试图从一个公共数据库切换特定的连接字符串值,我保留连接字符串,特定客户ID和密码的映射表.成功的login后我正在从公共数据库中获取连接字符串,并通过在运行时替换选定的连接字符串来编辑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读取页面上方的连接字符串.问题是Web配置文件正在更改,但在使用Response.Redirect调用另一个页面后将抛出异常.Exception是“无法评估表达式,因为代码已优化或者本机框架位于调用堆栈之上“我可以意识到这是在跨线程环境中发生的事情.我的问题是
>上述例外的确切原因是什么?
> Asp.net的哪个页面生命周期从Web配置文件中读取设置?
>我可以在上述方案中实施的正确方法是什么?
解决方法:
我想知道为什么这个问题似乎仍然没有答案.我已经找到了一些自我答案.这可能是错误的,但有些如何给我一些意义.我认为以下是我的知识水平可以接受的.
1)我不知道确切的原因,但这是因为代码在应用程序运行时被修改而发生的事情
2)基于我的搜索,当IIS服务器启动时,应用程序开始读取WEB Config文件.所以在WEB Config中要修改的值,需要重启IIS服务器将它们加载到内存中.我们可以修改连接字符串动态但仍然应用程序将在以前的连接字符串上运行.所以我们需要重新启动IIS以加载更新的连接字符串.
注意:修改现有连接字符串不同于向WEB配置添加新连接字符串.
3)我使用了一个公共数据库,其中我有几个数据库的不同连接字符串的认证详细信息.WeB配置有上面主数据库的连接字符串.如果用户提供他的认证详细信息,它将选择他的连接字符串并加载它作为新的连接字符串.因此剩余的进程将基于该连接字符串.
上述答案的任何新论据都非常值得注意.我需要其他开发人员的更正,因为我非常渴望学习.
内容总结
以上是互联网集市为您收集整理的c# – 在Web Config中动态更改和切换connectionString的问题全部内容,希望文章能够帮你解决c# – 在Web Config中动态更改和切换connectionString的问题所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。