Подтвердить что ты не робот

Вам нужно перезапустить службу Windows, если вы измените app.config?

Вам нужно перезапустить службу Windows, если вы измените app.config?

4b9b3361

Ответ 1

Да, вы делаете:

.Net framework будет читать app.config один раз и никогда не прикасаться к app.config еще раз. Вот почему вы должны перезапустить приложение, чтобы получить изменения.

Почему инфраструктура .Net не обнаруживает, что app.config изменился, и обновить все данные конфигурации?

Причина проста, это невозможно вообще.

Позволяет использовать Raymonds "представьте, что это может быть сделано" здесь...

Ответ 2

Нет, вам не обязательно. Но если вы хотите, чтобы изменения в app.config вступили в силу, возможно, потребуется перезапустить его. Или вы можете захотеть реализовать механизм мониторинга пользовательских конфигурационных файлов, который изменит настройки служб на лету.

Ответ 3

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

  ConfigurationManager.RefreshSection("appSettings")
  sValue = ConfigurationManager.AppSettings(name)

Ответ 4

Да.

Предположительно вы имеете в виду файл appname.exe.config?

Ответ 5

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

Например, система ведения журнала Log4Net предлагает такой механизм для своего файла конфигурации.

Ответ 6

Это выходит за рамки вопроса, но я бы предположил, что вы хотите вносить изменения только в некоторые разделы, специфичные для приложения (appSettings и т.д.).

Вам лучше писать собственный обработчик раздела конфигурации, который контролирует его собственный файл конфигурации - подход nlog использует. Проверьте раздел " Автоматическая реконфигурация".