InvokeHelper()抛出访问被拒绝异常

InvokeHelper() throws Access is denied exception

本文关键字:拒绝 异常 访问 InvokeHelper      更新时间:2023-10-16

社区,我有一个很有趣但同时又很沉重的问题。我有vb.net应用+ Service + c++应用。c++应用程序使用InvokeHelper()方法生成一些数据并进行回调:

InvokeHelper(0x60030000, DISPATCH_METHOD, VT_EMPTY, NULL, parms,
     eventType, eventValue);

第一个参数是应该调用的方法的dispid。奇怪的方法,但这不是我的代码,我不能改变这种方式。

在服务中,我用dispid属性标记的方法从c++应用程序中获得这个回调。

<DispId(&H60030000)>
Public Sub ServerEvent(ByVal vEventType As Integer, ByVal vEventValue As Object)
    RaiseEvent ControlPanelStateChange(vEventType, vEventValue)
End Sub

如果我以admin身份登录,此代码可以正常工作。但是如果windows用户没有管理员权限,在调用InvokeHelper()方法之后,下一个异常发生:

application.exe中的0x75B7C42D (KernelBase.dll)第一次机会异常:0x80070005:访问被拒绝

你有什么想法吗?我玩过DCOM权限,但结果是一样的。

任何帮助都太棒了!

问题的解决方法是:

DCOMCNFG,右键单击我的计算机,选择属性-> COM证券选项卡->访问权限->单击编辑默认值,并添加网络服务,并赋予它允许本地访问权限。对 用户。

然后->启动和激活权限,单击编辑默认值并添加网络服务,并赋予其本地启动和本地激活权限。对 用户。