【问题标题】:.NET - Child Processes and Configuration Files.NET - 子进程和配置文件
【发布时间】:2011-08-30 01:47:13
【问题描述】:

我正在设计一个 Windows 服务,它能够启动任意数量的进程,每个进程处理不同数据库集上的数据处理;沙箱镜像我们的实时数据处理服务。数据库连接信息存储在配置文件中,其位置在 app.config 中指定。 是否可以在每个子进程的基础上更改 app.config 数据?

我有我的 MasterService,例如,它启动了 2 个新进程:DataProcessor1 和 DataProcessor2。 DataProcessor1 应该访问数据库foo_1,DataProcessor2 应该访问数据库foo_2。但是,默认情况下,数据库配置设置为 data_service,以便 MasterService 可以访问它需要运行的内容,而不受其子项正在做什么。

正如我之前提到的,数据库配置的位置是在 app.config 中指定的。 有没有办法让我以编程方式为每个进程提供自己的 app.config,或者在每个进程的基础上更改 app.config 数据,这样我就可以将每个进程指向自己独特的数据库配置?

我们的核心库在很大程度上依赖于我们目前拥有的数据配置设置,因此更改它是不可能的。同样,此时也无法注入自定义数据库连接对象。

【问题讨论】:

    标签: .net process windows-services app-config


    【解决方案1】:

    子进程是否必须从 app.config 中获取它的连接字符串?如果不是,您可以将连接字符串作为命令行参数传递给子进程。

    我相信您可以使用 System.Configuration 中的 ConfigurationManager 类对 app.config 进行运行时更改,但不确定是否可以使用它将 app.config 的路径更改为另一个文件。

    【讨论】:

    • app.config 不提供连接字符串,只提供提供它的数据配置的路径。现在,我可以为每个进程生成一个新的数据配置,将其保存到磁盘,将该新路径作为命令行参数传递,并可能强制代码在提供的路径上加载数据配置。这可能是我拍过的最好的照片了。
    猜你喜欢
    • 2012-05-13
    • 1970-01-01
    • 1970-01-01
    • 2016-07-29
    • 1970-01-01
    • 2010-10-02
    • 1970-01-01
    • 2011-01-13
    • 1970-01-01
    相关资源
    最近更新 更多