Внесение изменений в реестр во время запуска службы без сохранения состояния в Service Fabric - PullRequest
0 голосов
/ 06 сентября 2018

Я использую библиотеку, которая ищет в реестре DLL. Эту DLL можно установить, запустив MSI в кластере Service Fabric, и этот путь будет установлен.

Но я хотел избежать установки MSI в кластере и предоставил необходимые библиотеки в самом пакете. Во время запуска службы я создаю запись в реестре и указываю расположение dll в моем пакете. Все работает как положено.

Является ли этот подход идеальным? Можно ли вносить изменения в реестр? Если нет, как мы решаем эту проблему? Любые указатели приветствуются.

1 Ответ

0 голосов
/ 07 сентября 2018

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

Вы можете сделать это в SF, правильный способ сделать это - использовать параметр SetupEntryPoint в ServiceManifest для выполнения этих задач управления, а из манифеста приложения вы можете установить политики, чтобы указать, какой пользователь должен запускать эти политики. это описано здесь с более подробной информацией

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

...