worker processcalls OpenSubKey但通过访问Remote Registry服务返回null

时间:2010-04-01 11:24:48

标签: iis-6 remote-registry

我的Web服务器部署在IIS 6中.Web服务器通过创建运行某些远程操作命令的进程,成功启动远程计算机中的远程注册表服务。

第一行成功运行。但第二行返回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,还可以打开它的任何子键。

我对此非常困惑。

1 个答案:

答案 0 :(得分:1)

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