DCOM需要在客户端和服务器计算机上注册服务器

时间:2016-07-25 20:43:35

标签: delphi delphi-2010 dcom

我在Delphi 2010中编写了一个DCOM服务器和一个调用服务器的客户端。为了能够在与服务器机器不同的机器上运行客户端,我需要在两台机器上注册服务器,旁边做安全相关的事情以允许客户端访问服务器。

我想知道是否有人知道在两台不同的机器上使用客户端和服务器所需的最小努力,假设客户端和服务器都已编写并且它们正在工作。到目前为止我得到的是:

  1. 在服务器计算机上运行server.exe:server.exe / regserver
  2. 运行DCOMCNFG并在服务器计算机上设置安全设置。
  3. 在防火墙中定义传入规则,以便在服务器计算机上建立连接。
  4. 在客户端计算机上运行server.exe:server.exe / regserver
  5. 现在我们可以在客户端计算机上运行client.exe并使用服务器实现的接口。
  6. 促使我写这个问题的是,我无法理解为什么我们还需要在客户机上注册服务器。客户端应用程序了解接口和服务器GUID,并在其实现中创建服务器时相应地使用它们。所以客户端机器上的DCOM有足够的信息来查询服务器机器的DCOM,为它提供具有提供的GUID的正确服务器,我们不需要在客户端注册服务器(至少看起来如此),但是我们需要实际做到这一点。

    最好的问候,

1 个答案:

答案 0 :(得分:1)

实际上,您不必在客户端计算机上注册服务器。但是,您可能需要在客户端计算机上注册服务器类型库。您有两个选择:

  1. 在客户端计算机上注册服务器的类型库

  2. 创建一个DataSnap Server应用程序(基于COM)并使用 DCOMConnection,SocketConnection或SOAPConnection连接到它 没有在客户端上注册服务器或类型库 机。

  3. 在过去的15年里,我开发了几台COM / COM +服务器。我的建议是:创建一个基于DataSnap COM的服务器,在部署COM服务器和客户端时可以省去很多麻烦。部署和维护要容易得多。