Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Netzwerke (https://www.delphipraxis.net/14-netzwerke/)
-   -   Delphi TidHTTPServer beenden --> Exception "Operation abgebrochen&quo (https://www.delphipraxis.net/102868-tidhttpserver-beenden-exception-operation-abgebrochen-quo.html)

berens 6. Nov 2007 10:37


TidHTTPServer beenden --> Exception "Operation abgeb
 
Hi.

Delphi-Quellcode:
THTTPServer = class(TIdHTTPServer)

destructor THTTPServer.Destroy;
begin
  Self.Shutdown;
  Application.ProcessMessages;
  Active := False;

  inherited Destroy;
end;
löst eine Exception aus bei idCustomTCPServer procedure TIdListenerThread.Run; (Zeile 901, Delphi 2007 Pro mit Indy 10).

Delphi-Quellcode:
  LIOHandler := Server.IOHandler.Accept(Binding, Self, LYarn);
  if LIOHandler = nil then begin
    // Listening has finished
    Stop;
    Sys.Abort; // <-- hier
Fehlermeldung: Operation abgebrochen.

Wieso, weshalb, warum? Es ist kein Client verbunden. Danke für Tips!

berens 20. Nov 2007 11:44

Re: TidHTTPServer beenden --> Exception "Operation a
 
*PUSH* Laut den Sources von Indy dürfte dieser SessionCleanupThread eigentlich nur aktiv sein, wenn

SessionState := True;
oder
SessionTimeOut > 0;

Ich habe aber:
Delphi-Quellcode:
  SessionState := False;
  SessionTimeOut := 0;
*grummel* Jedes Mal ne Exception beim ordnungsgemäßen Beenden. Das nervt! *help*

SirThornberry 20. Nov 2007 12:18

Re: TidHTTPServer beenden --> Exception "Operation a
 
du solltest nach dem setzen von Active so lange warten bis er auch wirklich inaktiv ist.

berens 22. Nov 2007 10:08

Re: TidHTTPServer beenden --> Exception "Operation a
 
Also ich habe festgestellt, dass es definitiv an Indy liegen muss. Sogar dieser Code führt zur Exception (s.o.) beim Programm beenden:

Delphi-Quellcode:
unit Unit2;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, IdBaseComponent, IdComponent, IdCustomTCPServer, IdCustomHTTPServer, IdHTTPServer, idContext;

type
  TForm2 = class(TForm)
    procedure FormCreate(Sender: TObject);
    procedure FormDestroy(Sender: TObject);
  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;

var
  Form2: TForm2;
  h: TIdHTTPServer;

implementation

{$R *.dfm}

procedure TForm2.FormCreate(Sender: TObject);
begin
  h := tidhttpserver.Create(NIL);
  h.Active := True;
end;

procedure TForm2.FormDestroy(Sender: TObject);
begin
 h.Free;
end;

SubData 22. Nov 2007 10:30

Re: TidHTTPServer beenden --> Exception "Operation a
 
Auch, wenn du Active auf False setzt vor dem Destroy?

berens 22. Nov 2007 10:31

Re: TidHTTPServer beenden --> Exception "Operation a
 
Ja.

SubData 22. Nov 2007 10:39

Re: TidHTTPServer beenden --> Exception "Operation a
 
Mach das mal im OnClose und nicht OnDestroy

berens 22. Nov 2007 10:41

Re: TidHTTPServer beenden --> Exception "Operation a
 
Das Selbe.


Alle Zeitangaben in WEZ +1. Es ist jetzt 17:36 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz