无法写入Registry Key,获取UnauthorizedAccessException

dmc*_*mck 34 .net c# windows registry exception-handling

我有一个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());
}
Run Code Online (Sandbox Code Playgroud)

有什么建议?

Nic*_*oiu 71

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

  • +1谢谢!这是一个烦人的(但明显是明显的)过载.有点尴尬我错过了...... (7认同)