C#注册表写入不再工作

C#注册表写入不再工作,c#,permissions,registry,C#,Permissions,Registry,我们刚刚注意到,我们不能再从C#http处理程序(.ashx)写入注册表。我在这里看到过很多帖子,但我想我已经把每一篇都累坏了。最大的区别在于,该代码已运行多年,但现在给出了错误: “不允许请求的注册表访问” 过去的工作: regKey = Registry.LocalMachine.OpenSubKey(strPath, RegistryKeyPermissionCheck.ReadWriteSubTree); 我尝试过许多其他组合,都有相同的结果: RegistryKey re

我们刚刚注意到,我们不能再从C#http处理程序(.ashx)写入注册表。我在这里看到过很多帖子,但我想我已经把每一篇都累坏了。最大的区别在于,该代码已运行多年,但现在给出了错误:

“不允许请求的注册表访问”

过去的工作:

regKey = Registry.LocalMachine.OpenSubKey(strPath, 
    RegistryKeyPermissionCheck.ReadWriteSubTree); 
我尝试过许多其他组合,都有相同的结果:

RegistryKey regKey = null;
RegistryRights rights = RegistryRights.FullControl;
regKey = thisKey.OpenSubKey(strPath, true);
regKey = thisKey.OpenSubKey(strPath, RegistryKeyPermissionCheck.ReadWriteSubTree);
regKey = thisKey.OpenSubKey(strPath, RegistryKeyPermissionCheck.ReadWriteSubTree, rights);

if (bit64)
{
    regKey = RegistryKey
        .OpenBaseKey(RegistryHive.LocalMachine, RegistryView.Registry64)
        .OpenSubKey(strPath, RegistryKeyPermissionCheck.ReadWriteSubTree, rights);
}
else
{
    regKey = RegistryKey
        .OpenBaseKey(RegistryHive.LocalMachine, RegistryView.Registry32)
        .OpenSubKey(strPath, RegistryKeyPermissionCheck.ReadWriteSubTree);
}

regKey = thisKey.OpenSubKey(strPath, RegistryKeyPermissionCheck.ReadWriteSubTree);
regKey = thisKey.OpenSubKey(strPath, RegistryKeyPermissionCheck.ReadWriteSubTree, rights);
我还尝试添加app.config文件:

<assembly manifestVersion="1.0" xmlns="urn:schemas-microsoft-com:asm.v1">
<assemblyIdentity version="1.0.0.0" name="MyApplication.app"/>
 <trustInfo xmlns="urn:schemas-microsoft-com:asm.v2">
   <security>
    <requestedPrivileges xmlns="urn:schemas-microsoft-com:asm.v3">
    </requestedPrivileges>
    </security>
  </trustInfo>
</assembly>

一旦尝试打开子项,所有操作都会失败。我甚至将应用程序池设置为使用“Administrator”,只是想看看这是否有帮助。我还可以尝试什么,或者我可以提供哪些其他信息

编辑#1:
请记住,这是一个web应用程序。使用相同代码的桌面程序仍然可以正常工作。错误出现在
OpenSubKey
上,它不会进一步,因此不会显示“写入”代码。

我使用了regedit,并为“Everyone”授予了所需注册表项的完全权限。这在上面列出的许多不同选项中都起到了作用。幸运的是,我读写的所有值都在一个键下。

错误消息。。即使没有信息,我也能做出有根据的猜测。这是一个新的安全功能。你的原始代码行对我有用。我注意到您说过“我们不能再向注册表写入”,但您只显示了从注册表读取的代码。您从哪里得到错误?错误消息在文本中。现在给出错误:“不允许请求的注册表访问”。我正在努力写作,但那个错误并没有让我走得那么远。我一打电话给OpenSubKey就发生了。很高兴你让它工作了。你升级操作系统了吗?服务包?可能有一个安全更新可以解释为什么它不再工作。