2009-07-23 47 views
2

我有一个超出proc COM服务器(基于ATL)和一个Java应用程序,它在同一台机器上实例化来自此COM服务器的对象。从COM到DCOM

DCOM启用它还需要什么?仅在COM服务器或服务器和客户端上工作?

+0

也许你应该问COM组件的作者? – 2009-09-15 01:02:21

回答

1

通常您只需要通过regsvr32在客户端(以及在服务器端)注册代理接口。如果你的ATL对象都是基于IDispatch的,那你怎么打电话给他们(不是通过自定义界面),那么默认代理已经在Windows机器上注册了。

此时您只需指定实际对象所在服务器的机器名称。

与任何DCOM远程处理一样,您可能会遇到DCOM权限问题,从客户端到服务器,通常可以通过在服务器端使用DCOMCnfg解决(也可能在客户端上,如果使用回调) 。当然还有潜在的防火墙问题 - 您可能需要允许端口135(由DCOM使用的RPC映射器)的异常通过服务器。

0

我知道这不是一个直接的答案,但我不禁想到,也许DCOM不再是正确的解决方案。您可以将COM对象的功能封装在一个WCF Web服务中,该服务可以轻松地从Java或C#调用或者其他任何服务。请考虑这个选择。

+1

是的,我同意,但我有一个系统,利用德米特里的Outlook Redemption Library(这是COM)与Exchange Server交谈,并且恐怕发布周期有点过分。其实我想要做的是使用来自Java 64位进程的redemption库,但Redemption(因为它的MAPI依赖性)只有32位,所以我的DCOM问题。 – 2009-07-23 15:51:15