Невозможно записать в ключ реестра, получая исключение UnauthorizedAccessException

У меня есть служба 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 ответ

Решение

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

Другие вопросы по тегам