私のWebサーバーはIIS6に展開されています。Webサーバーは、いくつかのリモート操作コマンドを実行するプロセスを作成することにより、リモートマシンでリモートレジストリサービスを正常に開始します。
この最初の行は正常に実行されます。ただし、2行目は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を返すケースは1つだけです。サブキーが存在しない場合があります。
十分な権限がない場合は、例外がスローされます。しかし、サブキーは実際に存在します。別のマシンを変更して、VisualStudio2008でコードをデバッグします。2行を正常に実行できます。
十分な権限がある場合は、LocalMachineを開くだけでなく、そのサブキーを開くこともできます。
私はこれについてかなり混乱しています。