无法写入Registry Key,获取UnauthorizedAccessException

时间:2010-12-16 17:39:53

标签: c# .net windows exception-handling registry

我有一个尝试写入LOCAL_MACHINE

中的注册表项的Windows服务

密钥是作为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 个答案:

答案 0 :(得分:68)

RegistryKey.OpenSubKey(string)没有打开写作的密钥。尝试使用OpenSubKey(string, bool)重载来指定您希望密钥可写。