Datasnap / DCOM в Windows Web Server 2008 R2 - PullRequest
       16

Datasnap / DCOM в Windows Web Server 2008 R2

1 голос
/ 02 ноября 2011

Та же настройка работает в Windows 7/64 Bit и Windows Server 2008/64 Bit:

  • приложение сервера Datasnap расположено на подключенном сетевом диске
  • , зарегистрированном в tregsvr<drive>:\path\to\server.exe (от имени администратора)
  • GUID отображается в dcomcnfg
  • Службы Socketserver и DCOM работают

Клиент не работает с сообщением об ошибке «Class notзарегистрирован "

Если я переместлю приложение сервера в локальный каталог и повторите регистрацию tregsvr, клиент сможет подключиться без проблем.

Что еще можно проверить?

Ответы [ 3 ]

2 голосов
/ 02 ноября 2011

Разрешено ли клиенту подключаться к сетевому диску?Поскольку клиент на самом деле инициирует запуск сервера, он должен иметь возможность прочитать этот сетевой диск (это именно то, что вы видите, поскольку он отлично работает, если сервер находится на локальном диске) ...

1 голос
/ 02 ноября 2011
  1. Сервер не должен находиться в общем сетевом диске
  2. Вы должны зарегистрировать библиотеку типов серверов на стороне клиента, иначе DCOM на стороне клиента не сможет понять, какой класс создать и как организовать его вызовы по сети. Именно DCOM позаботится о том, чтобы сервер запросил экземпляр серверного приложения.
  3. При подключении DCOM вы должны указать, где находится сервер (IP или имя хоста).
  4. DCOM должен быть настроен правильно: используйте DCOMcnfg.exe, чтобы указать, какие пользователи / группы могут создавать экземпляры и вызывать сервер

Если вы используете сервер сокетов, он фактически действует как прокси. Это сокет-сервер, который выполняет вызовы DCOM от имени клиента, но все же вызовы инкапсулируются в пакеты, отправляемые серверу сокетов.

0 голосов
/ 02 ноября 2011

Решено:

  • tregsvr UNC-путь к сетевому расположению сервера Datasnap (вместо подключенного сетевого диска)
  • работает Socketserver в качестве учетной записи SYSTEM, дополнительные привилегии не требуются

После выхода с сервера клиент Datasnap по-прежнему успешно соединяется с сервером

На других / старых серверах Socketserver работает как приложение с необходимыми правами: P

...