尝试在.net中为没有管理员权限的用户创建com对象时出现以下错误。
由于以下错误导致CLSID为{6CA9DEBE-BA91-4E56-9CD3-D40FE0755204}的组件的COM类工厂失败:无法检索:800704ec此程序被组策略阻止。应用以获取系统管理员以获取更多信息。 (HRESULT的例外情况:0x800704EC)。
代码如下所示:
动态obj = null; 尝试 { 尝试 { var ComType = Type.GetTypeFromProgID(“XenReports.XenReportsX”); obj = Activator.CreateInstance(ComType); } 赶上(例外) { 抛出新的异常(TextMessageProvider.GetText(ResourceKeys.XenReportErrorMessage)); }
如果有人遇到这个问题,请告诉我。 Com对象适用于C ++ exe。
答案 0 :(得分:1)
错误本身就是问题,是您的组策略设置。您尝试创建COM对象的用户在当前组策略下没有足够的权限来执行任何此类创建。
您可以将此用户添加到' admin'在这台机器上组,然后尝试。
如果您尝试通过网络访问对象,则还需要执行相应的DCOM设置。运行' dcomcnfg'然后是组件服务 - > MyComputer - > DCOM配置。现在选择组件并右键单击以更改其属性,例如'启动和激活权限'以及允许哪个用户启动它等。