2010-12-16 5 views
33

J'ai un service Windows qui tentent d'écrire sur une clé de Registre dans LOCAL_MACHINEne peut pas écrire la clé de Registre, obtenir UnauthorizedAccessException

La clé est créée dans le cadre d'un package Windows d'installation les commandes du service Windows et un stand alone fenêtre de contrôle.

La fenêtre de contrôle peut lire et écrire correctement la clé de Registre, mais je ne peux pas écrire dans la clé de Registre même lorsque j'accorde des autorisations complètes au SERVICE LOCAL.

C'est le code qui lève l'exception:

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

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

Toutes les suggestions?

Répondre

66

RegistryKey.OpenSubKey(string) n'ouvre pas la clé pour l'écriture. Essayez d'utiliser la surcharge OpenSubKey(string, bool) pour spécifier que vous voulez que la clé soit accessible en écriture.

+7

+1 Merci! C'est une surcharge ennuyante (mais évidemment évidente). Un peu gêné, j'ai raté ça ... – Pwninstein

Questions connexes