Как запустить COM .dll на удаленном сервере? - PullRequest
1 голос
/ 18 апреля 2010

У меня есть устаревшая сторонняя библиотека COM .dll, которая используется для обеспечения интерфейса Excel с возможностью вызова для проприетарного продукта базы данных. DLL работает на той же физической машине, что и Excel. Мне нужно выполнить .dll (и базу данных, которую он вызывает) на удаленном сервере, сохраняя при этом простую возможность вызова Excel с клиента. Я полностью сбит с толку всеми различными технологиями MS, которые, кажется, намекают, что есть простой способ сделать это. Может ли кто-нибудь, пожалуйста, указать мне в правильном направлении (легче, тем лучше)?

1 Ответ

2 голосов
/ 18 апреля 2010

Есть 3 шага:

  1. Зарегистрируйте COM DLL на удаленном сервере.
  2. Скажите COM, чтобы он зашел на этот сервер, чтобы найти COM DLL.
  3. Настройка безопасности.

  4. Чтобы COM-сервер, который является DLL, выполнялся в своем собственном процессе, ему необходим суррогат COM (см. MSDN ).

  5. В Excel, если вы используете VBA для доступа к COM DLL, метод CreateObject имеет необязательный параметр, представляющий собой компьютер, на котором расположен сервер, и это именно то, что вам нужно. Если вы не используете VBA, я боюсь, что вам нужно написать прокси-сервер, который перенаправляет вызовы на реальный сервер. Я не смог найти способ сделать это с помощью конфигурации.

  6. Использование служб компонентов на удаленном сервере для настройки безопасности, чтобы пользователи из Excel могли запускать и использовать COM-сервер.

...