Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Проблема нотификационных сообщений


alexprozorov ©   (2004-03-23 13:03:00) 

здравствуйте всем!
Проблема такая - создан контроллер автоматизации и клиент к нему.
Когда они выполняются на одном компьютере нотификационные сообщения с сервера клиенту доходят, а когда на разных то нет.
Где можно порыть?


alexprozorov   (2004-03-23 17:30:00) [1]

Все получилось.
Оказывается компьютеры должны быть в одном домене или рабочей группе. Может быть мое заключение и не верно, но работает!


alexprozorov   (2004-03-23 16:43:00) [2]

Наврал, трассируется.
Там такие строки:

punk := GetServer;
ConnectEvents(punk);
Fintf:= punk as IEfirOTV;

на 1 punk присваивается значение, а на второй он становится равен nil

или я не там смотрю?


Digitman   (2004-03-23 16:01:00) [3]

это почему же ?


alexprozorov   (2004-03-23 15:55:00) [4]

EventsConnect не могу страссировать, ..TLB.pas  не трассируется


Digitman   (2004-03-23 15:38:00) [5]

ок.

трасиировка на кл.стороне процедуры

procedure TAutoObject.EventConnect(..)

что показывает ?


alexprozorov   (2004-03-23 15:29:00) [6]

Не фига не изменилось


Digitman   (2004-03-23 15:20:00) [7]

запусти утилиту regtlib.exe


alexprozorov   (2004-03-23 15:16:00) [8]

А как это делается?


Digitman   (2004-03-23 15:10:00) [9]

на удаленной машине, где располагается клиент, библ-ка типов зарегистрирована ?


alexprozorov   (2004-03-23 14:54:00) [10]

Вот еще вопрос - права какие-либо на доступ от сервера к клиенту нужны?

Если вкраце то вот так:

unit Main;

interface

uses
 Windows, SysUtils, Forms, Dialogs, Menus, ComObj,
 inifiles, ExtCtrls, StdCtrls, Controls,
 ComCtrls, ToolWin, Classes, Variants, ActnList,
 Grids, Graphics, EditForm, TimeCode, Efir_TLB, OleServer;

type
 TForm1 = class(TForm)
   ....
   EfirOTV1: TEfirOTV;
   ....
   procedure FormCreate(Sender: TObject);
   procedure EfirOTV1ChangeLogoEvent(Sender: TObject);
 private
   IMyServer: IEfirOTV;
   ....
   { Private declarations }
 public
   { Public declarations }
 end;

var
 Form1: TForm1;

implementation

var INI: TIniFile;
   FileName: String;
   RemoteMachineName: String;
{$R *.dfm}

procedure TForm1.FormCreate(Sender: TObject);
begin
  ....
  EfirOTV1.RemoteMachineName:=RemoteMachineName;
  EfirOTV1.Connect;
  IMyServer:=EfirOTV1.DefaultInterface as IEfirOTV;
  ....
end;

procedure TForm1.EfirOTV1ChangeLogoEvent(Sender: TObject);
begin
//Реакция на событие  
....
end;

end.


Digitman   (2004-03-23 14:42:00) [11]


> Это может зависеть от потоковой модели сервера?


такой зависимости по идее быть не должно

покажи код контроллера (клиента)


alexprozorov   (2004-03-23 14:10:00) [12]

Это может зависеть от потоковой модели сервера?


alexprozorov   (2004-03-23 14:10:00) [13]

Трассировка показывает, что удаленный клиент не реализует нотификационный интерфейс, а локальный формирует.
Поэтому после проверки этого локальному клиенту посылается сообщение а удаленному нет!
Честно говоря я в этом только разбирают, не до конца понимаю все это!


Digitman   (2004-03-23 13:53:00) [14]

что реально происходит в коде сервера, пытающегося вызвать колбэк ? что показывает трассировка ?


alexprozorov   (2004-03-23 13:49:00) [15]

Делал!
разрешение на запуск и доступ к серверу есть!


Digitman   (2004-03-23 13:42:00) [16]

настройки сервера автом-ции в DCOM-конфигураторе какие-то делал ?


alexprozorov   (2004-03-23 13:32:00) [17]

DCOM


Digitman   (2004-03-23 13:27:00) [18]

что используется для удаленного доступа контроллера(клиента)автоматизации к серверуавтоматизации ? DCOM ?


Наверх

Титульная страница Поиск, карта сайта Написать письмо