我正在用C#2005重写一个C ++应用程序。该应用程序有两个组件:一个可以由C ++服务启动的进程外COM服务器。 COM服务器使用传出接口,这意味着它在某些事件时从C ++服务模块调用事件处理程序方法。
我正在重写C ++服务部分。现在我已经开发了一个应用程序,它使用Runtime Callable Wrapper和Connection point来启动COM服务器并为事件处理程序方法提供实现。当我运行应用程序时,COM服务器启动正常,但当COM服务器尝试调用应用程序的事件处理程序方法时,我得到一个异常。
访问被拒绝。 (HRESULT异常:0x80070005(E_ACCESSDENIED))
我在网上搜索了很多,这些是与我的问题密切相关的几个主题: http://www.codeproject.com/Forums/1648/COM.aspx?fid=1648&select=2189754&fr=1792#xx2189754xx
非常感谢任何帮助。
答案 0 :(得分:0)
在我开发COM互操作DLL时,在构建过程中遇到了同样的错误。我通过从GAC卸载旧版本的DLL解决了这个问题。然后我能够在没有E_ACCESSDENIED错误的情况下构建DLL。