2010-12-16 4 views
33

У меня есть служба Windows, при попытке записи в раздел реестра в LOCAL_MACHINEНевозможно записать в ключ реестра, получение UnauthorizedAccessException

Ключ создается как часть пакета окна программы установки управляет службы окна и самостоятельные контрольное окно.

В окне управления можно прочитать и записать ключ реестра, однако я не могу записать его в раздел реестра, даже если я даю полные разрешения для ЛОКАЛЬНОЙ СЛУЖБЫ.

Это код, который бросает исключение:

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

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

Любые предложения?

ответ

66

RegistryKey.OpenSubKey(string) не открывает ключ для записи. Попробуйте использовать перегрузку OpenSubKey(string, bool), чтобы указать, что вы хотите, чтобы ключ был доступен для записи.

+7

+1 Спасибо! Это раздражающая (но явно очевидная) перегрузка. Какой-то смущенный, я пропустил это ... – Pwninstein 2011-03-14 22:05:56

Смежные вопросы