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 - щелкните правой кнопкой мыши службу и выберите "Свойства", а затем измените учетную запись службы через вкладку "Вход в систему".