Служба Windows user.config, потерянная обновлением Win10

У меня есть служба Windows.net, которая использует настройки области пользователя. Так как служба Windows работает под системной учетной записью, соответствующая user.config файл не хранится как обычно в:

C:\Users\{User Name}\AppData\Roaming\{Company Name}\{Assembly Name}_Url_{Hash}\{Assembly Version}

Но вместо этого на:

C:\Windows\SysWOW64\config\systemprofile\AppData\Local\{Company Name}\{Assembly Name}_Url_{Hash}\{Assembly Version}

Как выясняется, при любом обновлении Windows 10 (в моем случае 1703 Creators Update) вся папка C:\Windows\ копируется / перемещается в C:\Windows.old\,

Со мной user.config файл перемещается (не копируется) в C:\Windows.old и, следовательно, больше не обнаруживается моей службой. В результате мой сервис автоматически вернется к настройкам по умолчанию, что вызовет проблемы у моих клиентов.

Я сознательно выбрал настройки пользовательской области назад, когда впервые разрабатывал свой сервис, потому что я на самом деле меняю настройки во время выполнения (через приложение в системном трее, связывающееся через межпроцессное взаимодействие со службой). Это работало хорошо в течение нескольких лет. Но сейчас под windows 10 возникают проблемы.

Итак, мои вопросы:

  • Есть ли практическое решение этой проблемы? Может быть, способ сказать Windows, чтобы убедиться, user.config файл остается на прежнем месте?
  • Или есть лучшая стратегия для хранения редактируемых настроек для службы Windows?

Пожалуйста, обратите внимание, что в моем случае услуга уже используется, и я хотел бы придерживаться хорошего и удобного ConfigurationManager настройки с его интеграцией VS. Любой другой подход, такой как простой сериализуемый класс настроек, потребовал бы некоторого механизма перехода для поддержания текущих настроек моих клиентов живыми. И я знаю, кодирование обычай SettingsProvider это сложная задача.

0 ответов

Другие вопросы по тегам