配置多个Windows服务的连接字符串

时间:2015-08-03 10:44:30

标签: c# asp.net winforms

我目前的项目中有multiple windows service。并且所有人都有不同的app.config文件& connection string在同一个配置文件中定义。

现在我想更新app.config,以便所有Windows服务共享单个文件中的连接字符串。

我的目录结构如下:

RootFolder - >

  1. 服务A

  2. 服务B

  3. 我尝试使用以下2种方法,但没有成功:

    1. AppSettings's "File" attribute. - 有什么可以做的吗? 我可以在AppSettings部分中分配几个键值&我可以用 那些在连接字符串部分。
    2. ConnectionString's "ConfigSource" Attribute - 此属性仅包含相对路径,因此对我不起作用。
    3. 提前非常感谢你。如果需要任何进一步的信息,请告诉我。

1 个答案:

答案 0 :(得分:0)

一种方法可以使用公共app.config文件的符号链接。

因此,您将包含connectionStrings部分的公共app.config文件放在所有服务可访问的位置,并在服务的安装目录中使用mklink

创建指向该文件的符号链接

如:

mklink common.app.config.link "C:\Root\App.config"

在Windows服务的app.config中,您指向该链接:

<connectionStrings configSource="common.app.config.link">
</connectionStrings>

它需要一些维护但我想如果你把mklink命令放在脚本中也可以自动化。

希望这有帮助。

更新: 常见的app.config:X:\ common.app.config 项目1安装路径:X:\ Project1 \ 项目2安装路径:X:\ Project2 \

  1. 在X:\ Project1 \中创建链接

    mklink common.app.config X:\ common.app.config

  2. 在X:\ Project1 \ App.config文件中更新configSource

  3. 所以底线在configSource中,你给出了指向实际文件的链接路径。如果您只提供链接名称,请确保它与您的exe文件位于同一文件夹中,如图所示

    enter image description here