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

Unable to create com object instance in .net

本文关键字:com 对象 实例 创建 net      更新时间:2023-10-16

当我试图在.net中为没有管理权限的用户创建com对象时,出现以下错误。

CLSID为{6CA9DEBE-BA91-4E56-9CD3-D40FE0755204}的组件的COM类工厂由于以下错误而失败无法检索:800704ec此程序被组策略阻止。申请获取系统管理员的详细信息。(HRESULT:0x800704EC中出现异常)。

代码如下所示:

动态obj=null;尝试{尝试{var ComType=Type.GetTypeFromProgID("XenReports.XenReportsX");obj=Activator.CreateInstance(ComType);}catch(异常){抛出新异常(TextMessageProvider.GetText(ResourceKeys.XenReportErrorMessage));}

如果有人遇到过这个问题,请告诉我。Com对象用于C++exe。

正如错误本身所说,问题在于您的组策略设置。根据当前组策略,试图与之一起创建COM对象的用户没有足够的权限来进行任何此类创建。

您可以将此用户添加到此计算机上的"admin"组,然后尝试。

如果您试图通过网络访问对象,那么您还需要进行适当的DCOM设置。运行"dcomcnfg",然后运行组件服务->我的计算机->DCOM配置。现在选择组件并右键单击以更改其属性,如"启动和激活权限"以及允许哪个用户启动它等。