Форум: "Сети";
Текущий архив: 2004.05.16;
Скачать: [xml.tar.bz2];
ВнизПроблема нотификационных сообщений Найти похожие ветки
← →
alexprozorov © (2004-03-23 13:03) [0]здравствуйте всем!
Проблема такая - создан контроллер автоматизации и клиент к нему.
Когда они выполняются на одном компьютере нотификационные сообщения с сервера клиенту доходят, а когда на разных то нет.
Где можно порыть?
← →
Digitman © (2004-03-23 13:27) [1]что используется для удаленного доступа контроллера (клиента)автоматизации к серверу автоматизации ? DCOM ?
← →
alexprozorov © (2004-03-23 13:32) [2]DCOM
← →
Digitman © (2004-03-23 13:42) [3]настройки сервера автом-ции в DCOM-конфигураторе какие-то делал ?
← →
alexprozorov © (2004-03-23 13:49) [4]Делал!
разрешение на запуск и доступ к серверу есть!
← →
Digitman © (2004-03-23 13:53) [5]что реально происходит в коде сервера, пытающегося вызвать колбэк ? что показывает трассировка ?
← →
alexprozorov © (2004-03-23 14:10) [6]Трассировка показывает, что удаленный клиент не реализует нотификационный интерфейс, а локальный формирует.
Поэтому после проверки этого локальному клиенту посылается сообщение а удаленному нет!
Честно говоря я в этом только разбирают, не до конца понимаю все это!
← →
alexprozorov © (2004-03-23 14:10) [7]Это может зависеть от потоковой модели сервера?
← →
Digitman © (2004-03-23 14:42) [8]
> Это может зависеть от потоковой модели сервера?
такой зависимости по идее быть не должно
покажи код контроллера (клиента)
← →
alexprozorov © (2004-03-23 14:54) [9]Вот еще вопрос - права какие-либо на доступ от сервера к клиенту нужны?
Если вкраце то вот так:
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 15:10) [10]на удаленной машине, где располагается клиент, библ-ка типов зарегистрирована ?
← →
alexprozorov © (2004-03-23 15:16) [11]А как это делается?
← →
Digitman © (2004-03-23 15:20) [12]запусти утилиту regtlib.exe
← →
alexprozorov © (2004-03-23 15:29) [13]Не фига не изменилось
← →
Digitman © (2004-03-23 15:38) [14]ок.
трасиировка на кл.стороне процедуры
procedure TAutoObject.EventConnect(..)
что показывает ?
← →
alexprozorov © (2004-03-23 15:55) [15]EventsConnect не могу страссировать, ..TLB.pas не трассируется
← →
Digitman © (2004-03-23 16:01) [16]это почему же ?
← →
alexprozorov © (2004-03-23 16:43) [17]Наврал, трассируется.
Там такие строки:
punk := GetServer;
ConnectEvents(punk);
Fintf:= punk as IEfirOTV;
на 1 punk присваивается значение, а на второй он становится равен nil
или я не там смотрю?
← →
alexprozorov © (2004-03-23 17:30) [18]Все получилось.
Оказывается компьютеры должны быть в одном домене или рабочей группе. Может быть мое заключение и не верно, но работает!
Страницы: 1 вся ветка
Форум: "Сети";
Текущий архив: 2004.05.16;
Скачать: [xml.tar.bz2];
Память: 0.48 MB
Время: 0.037 c