我有一个继承的Visual Studio应用程序(VS2010),并已转换为一个较新的版本(VS2013)。除了一些小的修改(数据库连接字符串,Crystal Report源文件)之外,该应用程序是相同的。这是一个Windows窗体应用程序,允许用户从SQL数据库中选择报告,并在Crystal报告中显示数据。
当我以管理员身份执行该应用程序时,将显示winform,并且我可以从数据库中选择要查看的报告(一切正常)。当我以标准用户身份执行该应用程序时,我会立即收到通知,告知该应用程序已停止工作。如果我选择在标准用户帐户下以管理员身份运行应用程序,也会发生这种情况。
日志文件如下:
“ System.Security.SecurityException未处理 消息:mscorlib.dll中发生了类型为'System.Security.SecurityException'的未处理的异常 其他信息:不允许请求的注册表访问。”
这会在我的开发机器(Windows 7 64位)和最终用户机器(Windows 7 32位)上发生。我尝试了一些在线发现的建议,包括:
编辑注册表以对HKEY_LOCAL_MACHINE \ SYSTEM \ CURRENTCONTROLSET \ SERVICES \ EVENTLOG文件夹上的ASPNET和本地用户帐户授予“完全控制”权限。
验证应用程序中使用的两个自定义* .dll在注册表中具有正确的访问权限(每个组,用户组均具有读取访问权限)。其中一个库尝试打开键并读取关联的值。
将“ ASPNET”用户放在管理员组中(尽管这不是IIS应用程序,但我想我会试一试)。
用户帐户控制已被禁用。
我的期望是,当本地用户(仅属于用户组的一部分)执行该应用程序时,winform似乎会列出可供选择的报告。
我很茫然,已经开始用尽主意。谁能指出我正确的方向?