2015-08-03 51 views
0

我在當前項目中有multiple windows service。並且所有都有不同的app.config文件& connection string在相同的配置文件中定義。配置多個窗口服務的連接字符串

現在我想要更新app.config,以便所有的Windows服務共享單個文件中的連接字符串。

我的目錄結構,如下所示:

RootFolder - >

  1. 服務A

  2. 服務B

我已經使用下面2層的方法嘗試,但沒有解決:

  1. AppSettings's "File" attribute. - 有什麼可以做的是 我可以分配幾個關鍵值在appSettings部分&我可以使用 那些ConnectionString的部分。
  2. ConnectionString's "ConfigSource" Attribute - 此屬性只包含相對路徑,所以它不適用於我。

非常感謝你提前。讓我知道是否需要任何進一步的信息。

回答

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> 

它[R需要一點維護,但我想它可以自動化,以及如果你把mklink命令放在一個腳本中。

希望這會有所幫助。

UPDATE: 常見的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 \應用。配置文件更新configSource

那麼底線是configSource你給這所指向的實際文件的鏈接的路徑。如果你只提供鏈接的名稱確保它是在同一文件夾,你的exe文件,如圖像中

enter image description here

+0

非常感謝你的回答了。我創建了一個使用mklink的鏈接,但現在的問題是當我嘗試在C#中獲取連接字符串時,出現如下錯誤:「無法打開config.conf文件common.app.config」。現在該怎麼過來呢?請諮詢相同。提前致謝。 – user509685

+0

@ user509685 - 我重現了這個異常,當它找不到我創建的快捷方式時會發生這種情況。您能否確保您在configsource中輸入了您在mklink中使用的鏈接的名稱(例如,在我的示例中爲common.app.config.link)。另外請確保鏈接和exectuable在同一個文件夾或您必須更改鏈接的路徑 –

+0

我已創建鏈接如下所示。 mklink「db.config」「D:\ db.config」現在我的項目在D:\ Project \ WindowsService這個路徑下。在configsource中,我給出了這樣的路徑:configSource「db.config」因此,現在當我運行項目並獲取上面提到的錯誤時。讓我知道我是否做錯了什麼。 – user509685