2

我有一个 out of proc COM 服务器(基于 ATL)和一个 Java 应用程序,它在同一台机器上从这个 COM 服务器实例化对象。

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

4

2 回答 2

1

通常,您只需要通过regsvr32在客户端(以及服务器端)注册代理接口。如果您的 ATL 对象都是基于 IDispatch 的,并且这就是您调用它们的方式(不是通过自定义接口),那么默认代理已经在 Windows 机器上注册。

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

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

于 2010-01-15T16:43:27.380 回答
0

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

于 2009-07-23T15:41:42.297 回答