2009-07-23 4 views
2

У меня есть COM-сервер proc (на основе ATL) и Java-приложение, которое создает объекты с этого COM-сервера на одном компьютере.Переход от COM к DCOM

Что еще необходимо для включения DCOM? Требуется ли работа только на сервере COM или на сервере и клиенте?

+0

Возможно, вам стоит попросить автора COM-компонента? –

ответ

1

Обычно вам нужно иметь прокси-интерфейс, зарегистрированный на стороне клиента (а также на стороне сервера) через regsvr32. Если ваши объекты ATL основаны на IDispatch, и, как вы их называете (не через пользовательский интерфейс), тогда прокси-сервер по умолчанию уже зарегистрирован на Windows-машинах.

В этот момент вам нужно указать только имя машины, на которой находятся фактические объекты.

Как и при любом удаленном удалении DCOM, у вас могут возникнуть проблемы с разрешениями DCOM от клиента на сервер, что обычно можно решить с помощью DCOMCnfg на стороне сервера (возможно, на клиенте, если используются обратные вызовы) , И, конечно, потенциальные проблемы с брандмауэром - вам может потребоваться разрешить исключение для порта 135 (RPC Mapper, используемого DCOM), чтобы пройти через сервер.

0

Я знаю, что это не прямой ответ, но я не могу не думать, что, возможно, DCOM больше не является правильным решением. Вместо этого вы можете обернуть функциональность COM-объекта в веб-службу WCF, которую можно легко вызвать из Java или C# или любого другого. Пожалуйста, рассмотрите эту альтернативу.

+1

Да, я согласен, но у меня есть система, использующая библиотеку Redemption для Outlook (которая является COM), чтобы поговорить с Exchange Server и немного слишком сильно отстала от цикла выпуска, которого я боюсь. Фактически, что я хочу сделать, это использовать библиотеку выкупа из процесса на основе 64-разрядной версии Java, но Redemption (из-за его зависимости от MAPI) приходит только в 32 бит, поэтому мой вопрос DCOM. –

+0

Извините, но я не могу предоставить достоверную информацию здесь; мои знания DCOM устарели. –

+0

Спасибо за информацию в любом случае –