Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi Eigener Dienst startet, läuft kurz und beendet sich wieder (https://www.delphipraxis.net/114394-eigener-dienst-startet-laeuft-kurz-und-beendet-sich-wieder.html)

Die Muhkuh 24. Mai 2008 15:33


Eigener Dienst startet, läuft kurz und beendet sich wieder
 
Hi,

ich hab einen kleinen Dienst, in dem ein TIdTCPServer erstellt wird und auf Port 49880 lauscht (zum Testen ist im Moment die Property Active auf false!). Wenn ich den Dienst in Delphi starte (ganz normal über F9), dann läuft er ca. 30 Sekunden und beendet sich wieder von selbst, ohne Exception etc. pp.

Exceptions werden über ein TApplicationEvents geloggt. Der Dienst ist nicht interaktiv und macht im Moment auch nicht mehr als nur ein TIdTCPServer zu erstellen (ohne Active = true).

Ich bin gerade ein bisschen am Rätsel raten, woran das liegen könnte, da ich bisher noch nichts mit Diensten am Hut hatte.

Hat jemand kleine Denkanstöße?

Apollonius 24. Mai 2008 15:36

Re: Eigener Dienst startet, läuft kurz und beendet sich wied
 
Du startest den Dienst aus Delphi heraus? Das geht?

halinchen 24. Mai 2008 15:37

Re: Eigener Dienst startet, läuft kurz und beendet sich wied
 
Ich glaube man muss den Dienst erst installieren und muss sich dann mit dem Dienst via Debugger verbinden. Ansonsten klappt das nicht.

Schau dir mal das Tutorial an. Als ich einen Dienst gemacht hatte, klappte es prima.

http://www.delphipraxis.net/internal...ct.php?t=71367

edit: Da war ich wohl etwas zu voreilig. Das steht da ja gar nicht :gruebel: . Auf jeden Fall muss der Dienst installiert werden. Das geht, indem man /INSTALL oder so per Parameter übergibt. Und genau das wirst du Debuggen können. Aber in den eigentlich Dienst-Thread kommst du nicht rein. Da muss via Debugger > mit Prozess verbinden was machen. Dann einfach auf Anhalten gehen und man kann durchsteppen.

Dafür muss man allerdings Admin am PC sein.

Die Muhkuh 24. Mai 2008 15:38

Re: Eigener Dienst startet, läuft kurz und beendet sich wied
 
Ich sag mal "es geht". Vielleicht liegt die kurze Laufdauer auch eben daran. Ich bin gerade dabei, den Dienst auf einen anderen PC zu packen und dort richtig zu installieren und zu starten.

Wenn ich den in Delphi starte, kann ich zumindest auch noch durchsteppen etc. pp.

Halinchen: Ich werd gleich mal schauen.

halinchen 24. Mai 2008 15:43

Re: Eigener Dienst startet, läuft kurz und beendet sich wied
 
siehe mein Edit.

Die Muhkuh 24. Mai 2008 15:45

Re: Eigener Dienst startet, läuft kurz und beendet sich wied
 
Ich schau das gerade durch. Grob würde ich sagen, dass mir die Schleife im OnExecute fehlt.

Wenn ich mir dazu die Hilfe anschaue:

Zitat:

Wenn die Aktionen in der Behandlungsroutine für OnExecute abgeschlossen sind, wird der Dienst-Thread beendet. In der Regel enthält die Ereignisbehandlungsroutine für OnExecute eine Schleife
Hört sich das ganze recht logisch an, warum mein Dienst sich beendet. :)


Alle Zeitangaben in WEZ +1. Es ist jetzt 11:06 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