Вам нужно перезапустить службу Windows, если вы измените app.config?
Вам нужно перезапустить службу Windows, если вы измените app.config?
Ответ 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 использует. Проверьте раздел " Автоматическая реконфигурация".