0

我的web服务器部署在IIS 6中,web服务器通过创建进程运行一些远程操作命令,成功启动远程机器中的Remote Registry服务。

第一行运行成功。但第二行返回 null。

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

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

我试图从 MSDN 中找到原因。它只告诉一种情况它会返回 null。这种情况是子项不存在时。

  • 如果它没有足够的权限,它会抛出异常。但是子键确实存在。我换了另一台机器用 Visual Studio 2008 调试我的代码。它可以成功运行两行。

  • 如果它有足够的权限,它不仅可以打开LocalMachine,还可以打开它的任何子项。

我对此感到很困惑。

4

1 回答 1

1

Wow6432 注册表项表明您正在运行 64 位版本的 Windows。操作系统使用此键为在 64 位版本的 Windows 上运行的 32 位应用程序提供 HKEY_LOCAL_MACHINE\SOFTWARE 的单独视图。当 32 位应用程序查询 HKEY_LOCAL_MACHINE\SOFTWARE\\ 子项下的值时,应用程序会从 HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\\ 子项中读取。

于 2010-05-25T07:19:54.207 回答