Я получаю ошибку system.configuration.settingspropertynotfoundexception в службе Windows
-
28-10-2019 - |
Вопрос
У меня есть приложение для Windows, которое использует SettingsProvider для чтения параметров конфигурации и устанавливает значения по умолчанию, если файл не существует.
Работает нормально, работает нормально.
Я пытаюсь написать службу Windows, которая запускает это приложение.Когда он запускается службой, я получаю код сгенерированного кода для всех атрибутов настройки.
Как разрешить это исключение, когда служба запускает приложение?
Решение
Это просто означает, что приложение не может прочитать файл .Settings.Я могу думать о двух возможных причинах:
-
Служба работает под учетной записью, у которой нет доступа к файлу .settings.(или файл .config, в зависимости от) Это маловероятно, потому что служба может запускать приложение, и не имеет смысла иметь разрешения для приложения, а не для файла настроек.
-
Среда выполнения не может найти файл настроек.Ожидается, что настройки будут находиться в корневом пути запуска исполняемого файла.Убедитесь, что он существует на рассматриваемом компьютере.
Однако результат в Google обнаружил очевидную возможную причину, о которой я не подумал.Были ли добавлены .settings после последней компиляции?Скомпилируйте приложение в Visual Studio и повторите попытку ...
Другие советы
Другой возможной причиной является то, что вы пишете пользовательский код SettingsProvider
, который генерирует исключение и генерирует код кода.
В моем случае я сделал следующее:
родовое слово Так как Initialize
всегда передается как name
, null
выдавал код base.Initialize
.Я исправил это, передав ненулевое имя, например: