无法在.net中创建com对象实例

时间:2015-03-05 06:23:57

标签: c++ .net comobject

尝试在.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。

1 个答案:

答案 0 :(得分:1)

错误本身就是问题,是您的组策略设置。您尝试创建COM对象的用户在当前组策略下没有足够的权限来执行任何此类创建。

您可以将此用户添加到' admin'在这台机器上组,然后尝试。

如果您尝试通过网络访问对象,则还需要执行相应的DCOM设置。运行' dcomcnfg'然后是组件服务 - > MyComputer - > DCOM配置。现在选择组件并右键单击以更改其属性,例如'启动和激活权限'以及允许哪个用户启动它等。