我有一个实现IConnectionPoint事件的C ++ / ATL COM服务器。我的客户端是一个附加到事件的C#应用程序。将COM服务器创建为SYSTEM服务时,客户端可以正确附加到该事件。当COM服务器创建为LocalService服务(首选)时,当我附加到事件时,我会收到E_ACCESSDENIED异常。
如果COM服务器是LocalService,我该怎么做才能使事件工作?
感谢。
答案 0 :(得分:0)
您需要找到LocalService正在尝试使用的用户,并确保用户具有访问权限。如果您无法调整整个计算机的访问权限,则可能必须使用CoInitializeSecurity
并使用已知具有访问权限的标识以编程方式执行此操作。
有关详细信息,请参阅http://msdn.microsoft.com/en-us/library/ms679760(v=VS.85).aspx。