2010-12-16 51 views
33

Tengo un servicio de Windows que intentan escribir en una clave de registro en LOCAL_MACHINENo se puede escribir en la clave del registro, obtener UnauthorizedAccessException

La clave se crea como parte de un paquete de Windows Installer los controles del servicio de Windows y un independiente ventana de control.

La ventana de control puede leer y escribir bien la clave de registro, sin embargo, no puedo escribir en la clave de registro incluso cuando otorgo permisos completos al SERVICIO LOCAL.

Este es el código que produce la excepción:

private void updateLocalRegistryVersion(Double newVersion) 
{ 
    RegistryKey rk = Registry.LocalMachine; 
    RegistryKey sk = rk.OpenSubKey(@"Software\CompanyName\Monitoring\Values"); 

    sk.SetValue("scriptversion", newVersion.ToString()); 
} 

¿Alguna sugerencia?

Respuesta

66

RegistryKey.OpenSubKey(string) no abre la llave para escribir. Intente utilizar la sobrecarga OpenSubKey(string, bool) para especificar que desea que la clave sea escribible.

+7

+1 ¡Gracias! Esta es una sobrecarga molesta (aunque descaradamente obvia). Algo avergonzado lo extrañé ... – Pwninstein

Cuestiones relacionadas