![]() |
Indy AntiFreeze in einem Dienst
Hallo zusammen
schon wieder so was komisches. Hat schon jemand von Euch versucht, eine Indy (10) AntiFreeze-Komponente in einem Dienst zu verwenden? Also ich schaffe das nicht (mehr?). Sobald die Kompo auf dem Formular ist (egal ob Active := True oder False), fliegt mir das Programm beim Versuch vom .../INSTALL mit einer Fehlermeldung raus, ob ein Problembericht an Microsoft gesandt werden soll. Die eigentliche Fehlermeldung lautet, dass pro Applikation nur ein AntiFreeze erlaubt sei. Und das ist auch in der Hilfe bei Indy so zu finden. Aber ich habe ja GANZ SICHER nur ein AntiFreeze im Dienst. Ich habe sogar testeshalber alle anderen Applikationen abgeschossen, die ein AntiFreeze haben (könnten), das bringt alles nichts. Andererseits bin ich aber der Meinung, das sei schon mal gelaufen, die Antifreeze-Kompo habe ich nicht neu in den Dienst eingebaut. Könnte es sein, dass da irgendwo irgendwie irgendetwas hängen bleibt, wenn man den Dienst deinstalliert? Hat jemand eine Idee? |
AW: Indy AntiFreeze in einem Dienst
Wieso hat dein Dienst ein Formular? (Wie wäre es mit einem DatenModul)
Interaktive Dinste sind sowieso out. Nja, wie/wo wird dein Formular erstellt? Und bist du sicher, daß es nur einmal erstellt wird? |
AW: Indy AntiFreeze in einem Dienst
Wozu brauch man in deinem Dienst ein AntiFreeze? Das brauchst doch nur, wenn eine GUI hast. Das Ding sorgt doch nur dafür, dass die GUI nicht wartet und somit nicht einfriert, oder irre ich mich da? :gruebel:
|
AW: Indy AntiFreeze in einem Dienst
GUI = Hauptthread. Der Hauptthread eines Services sollte auch nicht hängen, sonst ärgert sich der Service Controller (etwa bem Starten/Stoppen von Diensten).
(edit sagt: ist nur eine Vermutung für die Verwendung, selber threaden sollte gerade in nem Dienst ja eigentlich nicht unüblich sein) |
AW: Indy AntiFreeze in einem Dienst
Lieber himitsu
Logisch hat mein Dienst kein Form im Sinne eines interaktiven Dienstes. Der muss auch auf W-7 laufen. Aber wie nennt man denn das 'Objekt' auf dem man auch bei einem Dienst die Kompos platziert, wie beispielsweise eben die Indys oder die Timer? Sieht doch wirklich aus wie normalerweise die Forms. Zu SHARK und CCRDude also ich habe es eigentlich schon so wie CCRDude verstanden und möchte den AntiFreeze deshalb verwenden. Und Indy-Server-OnExecute-Events sind per Defintion schon mal Threads! Aber interessieren würde mich ja, warum das nicht (mehr) geht mit dem AntiFreeze! |
AW: Indy AntiFreeze in einem Dienst
Macht denn dieses Antifreeze?
Wenn dieser Event in einem separaten Thread läuft ist's ja o.k? Ansonsten einfach Threads benutzen. |
AW: Indy AntiFreeze in einem Dienst
Zitat:
Nja, es kommt auch drauf an, was dieses AntiFreeze überhaupt macht. Es kann sich ja an vielen Stellen was verändert haben. - Delphi hat sich verändert - die Indys haben sich auch verwender - Windows hat sich verändert Da kann es schon passieren, daß inzwischen etwas ein bissl anders reagiert. |
AW: Indy AntiFreeze in einem Dienst
Also wenn es
![]() |
AW: Indy AntiFreeze in einem Dienst
Also bei mir funzt das (delphi6 indy10). Ich hab per Zufall auch noch eine AntiFreeze Komponete auf meinem TService, da ich das Programm zuvor nicht als Dienst sondern normale Windows-Forms-Anwendung (mit meist unsichtbarem Form) hatte.
Ich würd mal die Uses aller deiner Units durchgucken, ob da noch iwo die IdAntiFreeze drin steht und die ggf. löschen. Auch die, die du eigentlich brauchst und diese dann nochmal neu auf die TService-Unterlage klatschen. |
AW: Indy AntiFreeze in einem Dienst
Eingehende Daten kommen ja in eigenen Threads an und wenn etwas von den Clienten verlangt wird, dann kann man das ja im Anfragethread versenden.
Solange du also nicht im Hauptthread irgendwelche Daten versenden willst, wäre ja auch kein AntiFreeze nötig. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 11:13 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz