Конференция "Corba" » DCOM сервер в службе Win32 под Windows Server 2003 [Delphi, Windows]
 
  • Eugene_K © (27.09.07 18:47) [0]
    Здравствуйте! Проблема в следующем: написанный на Delphi 7 DCOM сервер в службе Win32 (DCOM server in Win32 service) прекрасно работает под Win2K и WinXP, но не работает под Windows Server 2003.
    Технические детали: использовались мастера Delphi: Service Application и Remote Data  Module. Служба запускается и спокойно работает, но не  происходит даже Create у Remote Data  Module. При этом TComponentFactory.Create отрабатывает без Exception.
  • vlad_ri (29.09.07 03:07) [1]
    Если есть возможность, перекомпилируйте сервер более новым компилятором (например из BDS 2006). У нас было что-то подобное, компонент для COM+ (с Remote Data Module) отлично работал в Win2k/XP и не работал в Win2k3. Помогла перекомпиляция в BDS 2006.
  • clickmaker © (02.10.07 12:44) [2]
    возможно, поможет

    .dpr

    if not IsWin2003 then
     Application.Initialize;



    главный модуль

    const
     WM_INITAPP = WM_APP + 1;

    procedure TMyServer.AppMessage(var Msg: TMsg; var Handled: Boolean);
    begin
     if (Msg.message = WM_INITAPP) and (FEvent <> 0) then begin
       Application.Initialize;
       SetEvent(FEvent);
     end;
    end;

    procedure TMyServer.ServiceStart(Sender: TService; var Started: Boolean);
    begin
     if IsWin2003 then begin

        Forms.Application.OnMessage := AppMessage;
        FEvent := CreateEvent(nil, true, false, nil);
        PostMessage(Forms.Application.Handle, WM_INITAPP, 0, 0);
        WaitForSingleObject(FEvent, INFINITE);
        CloseHandle(FEvent);
        FEvent := 0;
        Forms.Application.OnMessage := nil;
     end;
     CoInitializeEx(nil, COINIT_APARTMENTTHREADED);
     ...
    end;

    function IsWin2003: boolean;
    begin
     Result := (Win32MajorVersion > 4) and (Win32MinorVersion > 1);
    end;

  • Eugene_K © (17.10.07 12:44) [3]
    Спасибо Сергею М. за ссылку http://www.delphikingdom.info/asp/answer.asp?IDAnswer=54223 в ветке COM сервер в Win32 Service (http://pda.delphimaster.net/?id=1158154010&n=8)
    Теперь все работает.
 
Конференция "Corba" » DCOM сервер в службе Win32 под Windows Server 2003 [Delphi, Windows]
Есть новые Нет новых   [120359   +37][b:0][p:0.001]