我的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,还可以打开它的任何子键。
我对此非常困惑。
答案 0 :(得分:1)
Wow6432注册表项表示您运行的是64位版本的Windows。操作系统使用此密钥为在64位版本的Windows上运行的32位应用程序提供HKEY_LOCAL_MACHINE \ SOFTWARE的单独视图。当32位应用程序在HKEY_LOCAL_MACHINE \ SOFTWARE \\子项下查询值时,应用程序将从HKEY_LOCAL_MACHINE \ SOFTWARE \ Wow6432Node \\子项中读取。