2017-09-06 21 views
1

웹 응용 프로그램에서 자체적으로 호스팅하는 Owin 응용 프로그램을 설정하기 전에 콘솔 응용 프로그램에서 일부 레지스트리 키를 읽으려고합니다. IIS에서 응용 프로그램이 사용됩니다. 콘솔 응용 프로그램은 IIS에서 실행될 때 웹 API 응용 프로그램과 동일한 키 항목을 볼 수 없습니다.콘솔 응용 프로그램이 IIS 응용 프로그램에서 읽을 수있는 레지스트리 키를 읽을 수 없습니다.

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

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

콘솔 앱에서 웹 API 앱처럼 레지스트리에서 읽을 수 있도록 변경해야하는 항목은 무엇입니까?

+0

사용자 ID를 사용하여 콘솔 응용 프로그램을 실행한다고 가정하면 대부분 레지스트리 가상화 호환성 기능 (https://msdn.microsoft.com/en-us/library/aa965884(VS.85).aspx)이 발생하고 HKEY_LOCAL_MACHINE 대신 HKEY_USERS 항목으로 투명하게 리디렉션됩니다. HKEY_LOCAL_MACHINE은 IIS 프로세스로 API를 실행할 때 주로 사용됩니다. –

답변

1

웹 API 응용 프로그램이 프로젝트 빌드 탭에서 x86 플랫폼을 대상으로 설정되었습니다. x64로 설정하면 문제가 해결되었습니다.