首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >当运行应用程序的多个实例时,处理app.config连接字符串

当运行应用程序的多个实例时,处理app.config连接字符串
EN

Stack Overflow用户
提问于 2015-07-28 13:59:13
回答 2查看 601关注 0票数 1

通常,在.NET应用程序中,您将数据库连接字符串存储在app.config中。

对于单个.exe,只有一个.exe.config。我们使用的是实体框架(),默认情况下使用与DbContext名称匹配的DbContext设置。只要遵循让应用程序的单个实例与单个数据库对话的通用模式,所有这些都可以正常工作。

但是,我们的问题要求我们有多个应用程序实例,每个实例都有自己独特的数据库连接。

可能的解决办法:

  1. 创建多个.exe副本,每个副本都有自己的.config副本,并在每个副本中放置不同的连接字符串。优势?没有编码变化。劣势?维护所有不同的副本,确保它们都得到更新,等等。
  2. 保存一个.exe副本和一个.config副本,并在.config中放置多个连接字符串。然后将命令行参数传递给选择使用哪个连接字符串的程序。优势?只需要管理一个.exe。劣势?编码改变,很可能有人会搞砸命令行参数。
  3. 另一个绝妙的主意,就是在Stack溢出上的某个人会向我指出的。

有什么想法吗?

我相信人们以前处理过这个问题。是否有一个共同的方法来处理这个问题?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-07-29 03:18:14

您还可以考虑创建配置文件的副本,并使用以下代码根据命令行参数加载适当的配置文件:

代码语言:javascript
复制
AppDomain.CurrentDomain.SetData ("APP_CONFIG_FILE", "path to config file")

有关详细信息,请参见此:Relocating app.config file to a custom path

票数 2
EN

Stack Overflow用户

发布于 2015-07-28 14:06:17

您可以在一些C#应用程序中尝试这样的方法来更改每个应用程序的连接字符串。

代码语言:javascript
复制
var config = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);
var connectionStringSection = (ConnectionStringsSection)config.GetSection("connectionStrings");
connectionStringSection.ConnectionStrings["database"].ConnectionString = string.Format("Data Source={0}", userCon);
config.Save();
ConfigurationManager.RefreshSection("connectionStrings");
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31678512

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档