Я получаю ошибку system.configuration.settingspropertynotfoundexception в службе Windows

StackOverflow https://stackoverflow.com/questions/8404832

Вопрос

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

Работает нормально, работает нормально.

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

Как разрешить это исключение, когда служба запускает приложение?

Это было полезно?

Решение

Это просто означает, что приложение не может прочитать файл .Settings.Я могу думать о двух возможных причинах:

  1. Служба работает под учетной записью, у которой нет доступа к файлу .settings.(или файл .config, в зависимости от) Это маловероятно, потому что служба может запускать приложение, и не имеет смысла иметь разрешения для приложения, а не для файла настроек.

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

Однако результат в Google обнаружил очевидную возможную причину, о которой я не подумал.Были ли добавлены .settings после последней компиляции?Скомпилируйте приложение в Visual Studio и повторите попытку ...

Другие советы

Другой возможной причиной является то, что вы пишете пользовательский код SettingsProvider, который генерирует исключение и генерирует код кода.

В моем случае я сделал следующее:

родовое слово

Так как Initialize всегда передается как name, null выдавал код base.Initialize.Я исправил это, передав ненулевое имя, например:

родовое слово
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top