Tengo una aplicación (escrita en C#), que se ejecuta en un servidor de Windows 2008 (64 bits). En esta aplicación, debo verificar algunas claves de registro con respecto a IIS. Entre otros Quiero tener acceso a la clave HKEY_LOCAL_MACHINE \ Software \ Microsoft \ InetStp \ Components \ WMICompatibility" para comprobar si el modo de compatibilidad con IIS 6 está habilitado o no. Para ello utilizo Registry.GetValue de Microsoft.Win32.Acceso de registro con C# y "BUILD x86" en una máquina de 64 bits
Por alguna razón, la solución debe ser compilado con x 86. la consecuencia es, que ya no es posible acceder a la HKEY_LOCAL_MACHINE \ Software \ Microsoft \ InetStp \ componentes de pero todavía es posible leer la clave desde HKEY_LOCAL_MACHINE \ Software \ Microsoft \ InetStp. Al compilarlo con "AnyCPU" -flag el acceso de registro funciona bien.
¿Cuál es la razón de este comportamiento? ¿Hay alguna solución o solución para este problema?
No recuerdo los nombres de las teclas específicas, pero el software x86 en Win64 reside en HKEY_LOCAL_MACHINE \ Software \ Wow64 o subclave con nombre similar – sehe