从.NET附加到COM服务器中的事件时出现E_ACCESSDENIED异常

时间:2010-07-08 17:35:33

标签: c# c++ com events iconnectionpoint

我有一个实现IConnectionPoint事件的C ++ / ATL COM服务器。我的客户端是一个附加到事件的C#应用​​程序。将COM服务器创建为SYSTEM服务时,客户端可以正确附加到该事件。当COM服务器创建为LocalService服务(首选)时,当我附加到事件时,我会收到E_ACCESSDENIED异常。

如果COM服务器是LocalService,我该怎么做才能使事件工作?

感谢。

1 个答案:

答案 0 :(得分:0)

您需要找到LocalService正在尝试使用的用户,并确保用户具有访问权限。如果您无法调整整个计算机的访问权限,则可能必须使用CoInitializeSecurity并使用已知具有访问权限的标识以编程方式执行此操作。

有关详细信息,请参阅http://msdn.microsoft.com/en-us/library/ms679760(v=VS.85).aspx