2017-09-06 6 views
1

私はWebアプリケーションの値を取得できるように、コンソールアプリケーションのいくつかのレジストリキーを読み込もうとしています(自己ホスト型Owinアプリケーションを設定する前に)アプリケーションはIISで使用します。コンソールアプリケーションは、IISで実行しているときにWeb APIアプリケーションが実行できるキーエントリと同じキーエントリを表示できません。コンソールアプリケーションは、IISアプリケーションが読み取ることができるレジストリキーを読み取ることができません

var c = Registry.LocalMachine 
       .OpenSubKey(
        @"SOFTWARE\APCI\AppServer", 
        RegistryKeyPermissionCheck.ReadSubTree, 
        System.Security.AccessControl.RegistryRights.ReadKey 
       ) 
       .GetSubKeyNames(); 

Registry.LocalMachine.Close(); 
return c[0]; 

コンソールアプリケーションで、Web APIアプリケーションと同じようにレジストリから読み取れるように変更する必要はありますか?

+0

ユーザーの身元情報を使用してコンソールアプリケーションを実行していると思われます。ほとんどの場合、レジストリ仮想化互換機能(https://msdn.microsoft.com/en-us/library/aa965884(VS.85).aspx)とHKEY_LOCAL_MACHINEではなくHKEY_USERSエントリに透過的にリダイレクトされます.HKEY_LOCAL_MACHINEは、IISプロセスとしてAPIを実行しているときに使用された可能性が最も高いものです。 –

答えて

1

Web APIアプリケーションが、プロジェクトビルドタブでx86プラットフォームを対象とするように設定されていることが分かります。 x64に設定すると問題が解決しました。

関連する問題