Рабочий процесс вызывает OpenSubKey, но возвращает ноль, обращаясь к службе удаленного реестра - PullRequest
0 голосов
/ 01 апреля 2010

Мой веб-сервер развернут в IIS 6. Веб-сервер успешно запускает службу удаленного реестра на удаленном компьютере, создав процесс для запуска некоторых команд удаленной работы.

Эта первая строка успешно работает. Но вторая строка возвращает ноль.

#1 RegistryKey remoteRegKey = RegistryKey.OpenRemoteBaseKey(RegistryHive.LocalMachine, "139.24.185.27");

#2 RegistryKey targetKey = remoteRegKey.OpenSubKey(@"SOFTWARE\Wow6432Node\XXXX\XXXX\Config\Modality", true);

Я пытался найти причину в MSDN. Это говорит только об одном случае, что он вернул бы ноль. Случай, когда подключ не существует.

  • Если у него недостаточно прав, он выдаст исключение. Но подключ действительно существует. Я изменяю другой компьютер для отладки своего кода в Visual Studio 2008. Он может успешно выполнить две строки.

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

Я совершенно сбит с толку.

1 Ответ

1 голос
/ 25 мая 2010

Запись реестра Wow6432 указывает, что вы используете 64-разрядную версию Windows.ОС использует этот ключ для представления отдельного представления HKEY_LOCAL_MACHINE \ SOFTWARE для 32-разрядных приложений, работающих в 64-разрядной версии Windows.Когда 32-разрядное приложение запрашивает значение в подразделе HKEY_LOCAL_MACHINE \ SOFTWARE \\, приложение выполняет чтение из подраздела HKEY_LOCAL_MACHINE \ SOFTWARE \ Wow6432Node \\.

...