我正在设计一个能够启动任意数量进程的Windows服务,每个进程处理不同数据库集上的数据处理;沙盒镜像我们的实时数据处理服务。数据库连接信息存储在配置文件中,其位置在app.config中指定。 是否可以基于每个子进程更改app.config数据?
我有我的MasterService,例如,它启动了2个新进程:DataProcessor1和DataProcessor2。 DataProcessor1应该命中数据库foo_1
,而DataProcessor2应该命中数据库foo_2
。但是,默认情况下,数据库配置设置为data_service
,以便MasterService可以访问它所需要的功能,而与其子进程无关。
正如我之前提到的,数据库配置的位置在app.config中指定。 我有没有办法以编程方式为每个进程提供自己的app.config,或者在每个进程的基础上更改app.config数据,这样我可以将每个进程指向自己唯一的数据库配置?
我们的核心库在很大程度上依赖于我们目前拥有的数据配置设置,因此更改它是不可能的。同样,此时也无法注入自定义数据库连接对象。
答案 0 :(得分:0)
子进程是否必须从app.config获取连接字符串?如果没有,您可能只是将连接字符串作为命令行参数传递给子进程。
我相信您可以使用System.Configuration中的ConfigurationManager类对app.config进行运行时更改,但不确定是否可以使用它将app.config的路径更改为另一个文件。