![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
MIDAS, Сервер приложений в виде DLL [D6, ]
Slava © (2001-12-27 10:17:00)Как зарегистрировать Remote Data Module, если он находится в DLL?
С .exe все понятно: один раз запустил и все, а с DLL заминочка вышла :о(
Slava (2001-12-29 10:43:00) [1]ВСЕ!
РАЗОБРАЛСЯ!
Во всем "виноват" антивирусник, который по-умолчанию блокирует
все на..р
E-Safe называется...
Прошу прощения.
Slava (2001-12-29 10:02:00) [2]Вот ведь блин, а?
Проблема следующая:
Есть 2 компа: "МОЙ_КОМП" (Delphi6) и "НЕ_МОЙ_КОМП" (нет Delphi).
На обоих зарегин RemoteDataModule.
Создаю клиентское приложение с TDCOMConnection.
В Объект Инспекторе
Прописываю ComputerName:="НЕ_МОЙ_КОМП",
Connected:=True.
Все ОК. (сервер поднимается).
Компилирую. Запускаю. Ничего не происходит. Даже в списке процессов процесса такого нет. А на сервере server.exe поднимается,
но подключения к RemoteDataModule не происходит!!!
Ставлю Connected:=False и пытаюсь подключиться программно: ошибка
"Интерфейс не поддерживается". В дебаггере - тоже самое.
Прописываю ComputerName:="МОЙ_КОМП", запускаю клиента с "НЕ_МОЙ_КОМП" - ВСЕ ОК! Иду на 3-тий комп - тоже все ОК.
(все нормально подключается, сервер поднимается)
"МОЙ_КОМП" - W2K PRO
"НЕ_МОЙ_КОМП" - W2K PRO
3-тий комп - W2K SERVER
Romkin, на тебя все надежда. Заранее СПАСИБО!
Romkin (2001-12-27 13:45:00) [3]Ну невозможна ситуация, когда процесс работает на одной машине, а dll, к нему подключенная - на другой. К тому же, при удаленном доступе делается marshalling, через IDispatch или собственный прокси, а в DLL можно подключаться через IUnknown
Возможно, DCOM подгрузит, если указать, что сервер должен выполняться на стороне клиента... проволочет на машину и там подгрузит, но вряд ли. Но это так же, как и просто на машине - с настройкой возится не надо.
Slava (2001-12-27 13:38:00) [4]ОК. Разрегистрировались.
Спасибо!
P.S. Но про DLL все равно непонятно...
Romkin (2001-12-27 13:23:00) [5]Потому что DLL грузится в адресное пространство процесса, а он на другой машине...
разрегистрация для Delphi Server.exe /unregserver, если не ошибаюсь
Slava (2001-12-27 13:08:00) [6]> Romkin
Почему? Где написано?
Почему тогда из dcomcnfg его видно?
А если это так, то другой вопрос:
Как можно exe разрегить?
А то мусор в реестре копится...
Romkin (2001-12-27 12:59:00) [7]DLL на другой станции никогда не подключишь - должна находится на том же компе, что и клиент
Slava (2001-12-27 12:58:00) [8]Не получилось удаленно...
По-моему уже кто-то здесь вопрос этот задавал.
Если подкючаться через TSocketConnection, то все пучком, а если через TDCOMConnection, то "Класс не зарегистрирован."
Кто знает почему?
Slava (2001-12-27 12:43:00) [9]Мда..а
Все дело оказалось в винде (как всегда :))
Что-то там сломалось.
Перезагрузил и все ОК.
Спасибо.
P.S. Сейчас попробую удаленно...
Romkin (2001-12-27 12:22:00) [10]Если все нормально написано - все соединится. При регистрации через regsvr32 регистрируется все Factory, у которых не Internal.
Советую попробовать зарегистрировать через TRegSvr (Delphi/bin)
Slava (2001-12-27 12:09:00) [11]Вопрос открыт...
Slava (2001-12-27 10:52:00) [12]А что там надо посмотреть?
Сама DLL регистрируется: regsvr32 my.dll. Здесь все нормально.
А вот Remote Data Module,который в ней - нет.
GreySerg (2001-12-27 10:45:00) [13]посмотри DLLRegisterServer