Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Сети";
Текущий архив: 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.49 MB
Время: 0.034 c
6-1079716680
rulezz
2004-03-19 20:18
2004.05.16
Delphi + indy + post


7-1080441044
Александр1
2004-03-28 06:30
2004.05.16
Format disk


11-1069698015
zeddy
2003-11-24 21:20
2004.05.16
Application.OnIdle := MoveBall;


3-1082639512
Kein
2004-04-22 17:11
2004.05.16
никак не въеду в InterBase


1-1083266245
Serious Sam
2004-04-29 23:17
2004.05.16
Как втиснуть курсор в прогу?





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский