2013-10-07 107 views
0

我的开发机器是带有Window Server 2008 R2的VirtualBox。 我们正在使用CRM2011和12汇总。 对于我的开发,我使用框架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); 
} 

从使用相同组件的控制台应用程序做同样的事情没有任何问题。

问候, 马丁

+0

问题已解决。它必须处理用户权限。测试程序在管理员权限下运行,另一个程序在crm用户界面下运行。 – Bokkie

回答

1

验证您的身份ApplicationPool已经阅读访问有问题的注册表项。

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