我有一个进程外COM服务器(基于ATL)和一个Java应用程序,它在同一台机器上实例化来自这个COM服务器的对象。
还需要什么才能使DCOM启用它?只需要在COM服务器上工作,还是需要在服务器和客户端上工作?
发布于 2010-01-16 00:43:27
通常,您只需要通过regsvr32在客户端(以及服务器端)注册代理接口。如果你的ATL对象都是基于IDispatch的,并且你是这样调用它们的(而不是通过一个自定义接口),那么一个默认的代理已经在Windows机器上注册了。
此时,您应该只需要指定实际对象所在的服务器的计算机名。
与任何DCOM远程处理一样,您可能会遇到从客户端到服务器的DCOM权限问题,这通常可以通过在服务器端(如果使用回调,也可能在客户端)上使用DCOMCnfg来解决。当然还有潜在的防火墙问题-您可能需要允许端口135 (DCOM使用的RPC Mapper )在服务器上通过的例外。
发布于 2009-07-23 15:41:42
我知道这不是一个直接的答案,但我不禁想,也许DCOM不再是正确的解决方案。相反,您可以将COM对象的功能包装在WCF服务中,该服务可以很容易地从Java或C#等调用。请考虑这个替代方案。
https://stackoverflow.com/questions/1172489
复制相似问题