Подключение к Com на удалённой машине

Тема в разделе "Delphi - СОМ", создана пользователем jashilko, 8 май 2009.

Статус темы:
Закрыта.
  1. jashilko

    jashilko Гость

    Теперь у меня вторая проблема:

    Имеется сервер автоматизации в виде exe, имеются несколько клиентов которые к нему подключаются и должны получать события. То есть один клиент по нажатию кнопки событие генерирует, и все! клиенты его получают.

    Всё работает на локальной машине, как только я пытаюсь запустить клиента на локальной машине, он создаёт всё равно свой сервер, никак не связанный с тем, к которому подключены локальные клиенты.

    У клиентов есть функция подключения GetActiveObject, если объект получили, то всё здорово, если нет - создаём. Если клиент удалён, используем функцию CreateRemoteComObject но она именно создаёт новый, она не подключается к уже существующему.

    Почему так и в чём решение?

    Подключение клиента:

    Код (Text):
     GetActiveObject(CLASS_autom, nil, ActiveObj);

    if ActiveObj <> nil then
    AutoTest := ActiveObj as Iautom
    else
    AutoTest := Coautom.Create;
    EventSink := TEvent.Create as IEventSink;
    Container := AutoTest as IConnectionPointContainer;
    OleCheck(Container.FindConnectionPoint(IEventSink, ConnectionPoint));
    OleCheck(ConnectionPoint.Advise(EventSink, Cookie));


    инициализация сервера:

    Код (Text):
     inherited Initialize;
    FConnectionPoints := TConnectionPoints.Create(Self);
    if AutoFactory.EventTypeInfo <> nil then
    FConnectionPoints.CreateConnectionPoint(AutoFactory.EventIID,
    ckMulti, EventConnect);
    RegisterActiveObject(Self as IUnknown, CLASS_autom,
    ACTIVEOBJECT_WEAK, FObjRegHandle);
     
  2. Titan

    Titan Well-Known Member

    Регистрация:
    10 июн 2004
    Сообщения:
    105
    Симпатии:
    0
    При работе с COM не забывайте еще про конфигурирование (dcomcnfg).

    Ну и Ваша фраза:
    несовсем понятна
     
  3. SNike

    SNike Гость

    При подключении к COM-объекту на удаленном ПК (т.е. получается DCOM), нужно использовать DComCnfg и особое внимание уделить тому от какого имени (учетной записи) производится запуск программ и получение доступа к COM-объекту. Лучше всего если сеть будет доменная, и там произвести настройку запуска и доступа на определенную учетную запись. Полезно будет посмотреть и журналы событий windows при попытках доступа к COM.
     
  4. Titan

    Titan Well-Known Member

    Регистрация:
    10 июн 2004
    Сообщения:
    105
    Симпатии:
    0
    Помимо самих настроек DCOM, нужно еще и не забывать какую модель для экземпляра вы испльзуете...
     
Загрузка...
Статус темы:
Закрыта.

Поделиться этой страницей