Я написал в Delphi 2010 сервер DCOM и клиент для вызова сервера. Чтобы иметь возможность запускать клиента на машине, отличной от машины сервера, мне нужно зарегистрировать сервер на обеих машинах, помимо выполнения действий, связанных с безопасностью, чтобы позволить клиенту получить доступ к серверу.
Мне интересно, есть ли кто-нибудь, кто знает способ, требующий минимальных усилий для использования клиента и сервера на двух разных машинах, предполагая, что и клиент, и сервер написаны и работают. На данный момент я получил следующее:
- запустите server.exe на сервере: server.exe / regserver
- запустите DCOMCNFG и установите параметры безопасности на сервере.
- определить входящие правила в брандмауэре, чтобы разрешить соединение на сервере.
- запустите server.exe на клиентской машине: server.exe / regserver
- теперь мы можем запустить client.exe на клиентской машине и использовать интерфейсы, реализованные на сервере.
Что подтолкнуло меня написать этот вопрос, так это то, что я не могу понять, почему нам также нужно регистрировать сервер на клиентской машине. Клиентское приложение знает об идентификаторах GUID интерфейса и сервера и соответственно использует их при создании сервера в своей реализации. Таким образом, DCOM на клиентском компьютере имеет достаточно информации для запроса DCOM серверного компьютера, чтобы предоставить ему правильный сервер с предоставленным GUID, и нам не нужно регистрировать сервер на стороне клиента (по крайней мере, как кажется), но мы нужно на самом деле это сделать.
наилучшие пожелания,