C # Windows Service Несколько файлов конфигурации - PullRequest
1 голос
/ 14 апреля 2010

Быстрый вопрос

Можно ли иметь более 1 файла конфигурации в службе Windows? Или я могу как-то объединить их во время выполнения?

Сценарий

В настоящее время у меня есть два файла конфигурации, которые содержат содержимое ниже. После того, как я собрал и установил свою службу Windows, я не могу заставить свой пользовательский класс XML Parser читать содержимое, потому что он продолжает указывать на неправильный файл конфигурации, хотя я использую несколько строк кода, чтобы гарантировать, что он получает правильное имя файла конфигурации мне нужно получить доступ.

ТАКЖЕ

Когда я перехожу к папке, в которой установлена ​​служба, есть только знак обычного файла APP.Config и никаких признаков пользовательского файла конфигурации. (Я даже установил обычные свойства «Не копировать», а пользовательские свойства - «Всегда копировать»).

Код определения файла конфигурации

           string settingsFile = String.Format("{0}.exe.config",
                System.AppDomain.CurrentDomain.BaseDirectory
            + Assembly.GetExecutingAssembly().GetName().Name);

CUSTOM CONFIG File

     <?xml version="1.0" encoding="utf-8" ?>
      <configuration>
   <servers>
    <SV066930>
  <add name="Name" value = "SV066930" />
  <processes>
    <SimonTest1>
      <add name="ProcessName" value="notepad.exe" />
      <add name="CommandLine" value="C:\\WINDOWS\\system32\\notepad.exe    C:\\WINDOWS\\Profiles\\TA2TOF1\\Desktop\\SimonTest1.txt" />
              </SimonTest1>
     </processes>
    </SV066930>
   </servers>
  </configuration>

Файл NORMAL APP.CONFIG

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
  <configSections>
   <section name="dataConfiguration" type="Microsoft.Practices.EnterpriseLibrary.Data.Configuration.DatabaseSettings, Microsoft.Practices.EnterpriseLibrary.Data, Version=4.0.0.0, Culture=neutral, PublicKeyToken=xxxxxxxxxxx" />
 </configSections>
 <connectionStrings>
    <add name="DB" connectionString="Data Source=etc......" />
  </connectionStrings>
 </configuration>

Ответы [ 2 ]

0 голосов
/ 22 апреля 2012

У вас есть возможность переместить весь раздел конфигурации (акцент здесь делается на раздел, а не на группу разделов конфигурации или настройку конфигурации) во внешний файл (который затем должен, очевидно, присутствовать в рабочем каталоге во время выполнения) и сослаться на него это через атрибут configSource, например

<Servers configSource="CUSTOM_CONFIG_FILE.config" />

и CUSTOM_CONFIG_FILE.config будут выглядеть примерно так ...

<?xml version="1.0" encoding="utf-8" ?>
<Servers>
</Servers>

Недостатком является то, что в вашем главном app.config / web.config вам нужно определить каждый раздел конфигурации - как вы это сделали - так что я предполагаю, что это не ограничение в вашем случае.

0 голосов
/ 14 апреля 2010

здесь - пример использования нескольких файлов конфигурации в .net. Вы можете определить некоторые настройки в отдельном файле и обратиться к нему в основном файле конфигурации.

В вашем случае, я думаю, вы можете сделать это в основном файле конфигурации:

 <Servers file="CUSTOM_CONFIG_FILE.config" />
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...