Registry.CurrentUser.OpenSubKey ничего не возвращает при вызове из службы

В приложении VB.NET, которое работает как служба, при использовании Registry.CurrentUser.OpenSubKey() возвращается значение "Ничего". Тот же код выполняется правильно, когда приложение работает в режиме рабочего стола. Я не очень на VB.NET и, к сожалению, это не мой код.

Код:

Dim regURL As String = "Software\MyCompany\" + _
                  System.Reflection.Assembly.GetCallingAssembly.GetName.Name + _
                  "\Settings"

regKey = My.Computer.Registry.CurrentUser.OpenSubKey(regURL, True)

regKey является Nothing когда используется сервисом. Рабочий стол возвращает действительный объект ключа реестра, который, как мне кажется, проверяет URL. Любые идеи, которые я использую CurrentUser, потому что этот код не работает с LocalMachine при работе на Windows Server 2008.

Заранее спасибо,

Craig

1 ответ

Решение

Чтобы этот тест был действительным, вы должны убедиться, что во время установки ваша служба настроена на работу с той же учетной записью, которую вы использовали для тестирования на рабочем столе. Они одинаковы?

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

Если они не совпадают, вы сможете выполнить повторное тестирование, изменив настройки службы с помощью AdminstrativeTools -> Services - щелкните правой кнопкой мыши службу и выберите "Свойства", а затем измените учетную запись службы через вкладку "Вход в систему".

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