Невозможно записать в ключ реестра, получая исключение UnauthorizedAccessException - PullRequest
33 голосов
/ 16 декабря 2010

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

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

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

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

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

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

Есть предложения?

1 Ответ

69 голосов
/ 16 декабря 2010

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

...