0

我的开发机器是带有 Window Server 2008 R2 的 VirtualBox。我们正在使用带有汇总 12 的 CRM2011。对于我的开发,我使用框架 4

在 CRM 中,我称之为 aspx 页面,该页面包含一个网格,其中包含我可以选择的记录。做出选择后,我按下按钮并将选择传递给程序集。该程序集具有检查注册表中的某个键是否可用的功能。如果是这样,它会继续,如果不是,它会返回。

我在这里面临的问题是我收到一个错误,试图使用 OpenSubKey() 读取注册表,告诉我我无权这样做。我使用下面的代码来检索密钥。该程序集未签名。签署程序集不会改变结果。

RegistryKey localKey = null;
if (Environment.Is64BitOperatingSystem)
{
    localKey = RegistryKey.OpenBaseKey(Microsoft.Win32.RegistryHive.CurrentUser,  RegistryView.Registry64);
}
else
{
    localKey = RegistryKey.OpenBaseKey(Microsoft.Win32.RegistryHive.CurrentUser, RegistryView.Registry32);
}

使用相同的程序集从控制台应用程序执行相同的操作不会产生任何问题。

问候,马丁

4

1 回答 1

1

验证您的 ApplicationPool 身份是否具有对相关注册表项的读取权限。

检查您的应用程序池在 IIS 中使用的用户,然后在 Regedit 中打开注册表项并检查权限。

于 2013-10-07T16:15:45.000 回答