Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Probleme bei der Portierung eines Dienstes von WinXP nach Win7 (https://www.delphipraxis.net/168454-probleme-bei-der-portierung-eines-dienstes-von-winxp-nach-win7.html)

Lord_Stifterl 22. Mai 2012 10:25


Probleme bei der Portierung eines Dienstes von WinXP nach Win7
 
Hallo alle zusammen,

ich habe vor mittlerweile gut 2,5 bis 3 Jahren einen simplen Watchdog-Dienst programmiert, welcher prüft ob ein weiterer Service läuft und wenn notwendig diesen neu startet. Dies funktioniert auch unter XP. Nun kam die Anforderung diesen Service nach Win7 zu portieren. Leider hat hier MS an den Starttypen bzw. allgemein am Startverhalten herumgebastelt. Der Dienst startet erst nach ca. 90 bis 120 Sekunden. Dies ist in etwa identisch mit dem neuen Starttyp "Delayed autostart". Der Service läuft jedoch mit dem normal Starttyp "Autostart". Wie ich feststellen konnte, wird der Service auch sofort gestartet (im Taskmanager "Wird gestartet..."), jedoch wechselt der Status wie oben beschreiben erst nach ca. 90 Sekunden auf "Wird ausgeführt". Ich konnte auch erkennen, dass zu diesem Zeitpunkt plötzlich auch alle anderen Dienste (vom System bzw. andere SW) erst gestartet wurden.

Kann es sein das MS den Starttyp "Automatisch" von einer mit Delphi2006 auf XP kompilierten Datei anders interpretiert? Gibt es einen Workaround für dieses Problem ohne eine neuere Delphi Version zu kaufen? Oder liegt das Problem wo ganz anders (zwischen den Ohren zum Beispiel) ?

Danke und beste Grüße

Uwe Raabe 22. Mai 2012 12:07

AW: Probleme bei der Protierung eines Dienstes von WinXP nach Win7
 
Nur 'ne Vermutung: könnte es sein, daß dein Service von einem anderen abhängt, der als delayed markiert ist?

Lord_Stifterl 23. Mai 2012 09:29

AW: Probleme bei der Portierung eines Dienstes von WinXP nach Win7
 
Nein, der Service hat keine Dependencies zu irgendwelchen anderen Services.

Uwe Raabe 23. Mai 2012 09:49

AW: Probleme bei der Protierung eines Dienstes von WinXP nach Win7
 
Zitat:

Zitat von Lord_Stifterl (Beitrag 1167571)
Kann es sein das MS den Starttyp "Automatisch" von einer mit Delphi2006 auf XP kompilierten Datei anders interpretiert?

Die Startart kannst du bei den Eigenschaften des Dienstes in dem entsprechenden Dialog unter Verwaltung festlegen. Das Property im Programm wird nur für die Installation verwendet.

In der Registry ist das "Autostart Delayed" übrigens keine eigene Startart, sondern wird in einem zusätzlichen Registryeintrag hinterlegt.

Lord_Stifterl 23. Mai 2012 09:55

AW: Probleme bei der Protierung eines Dienstes von WinXP nach Win7
 
Zitat:

Die Startart kannst du bei den Eigenschaften des Dienstes in dem entsprechenden Dialog unter Verwaltung festlegen. Das Property im Programm wird nur für die Installation verwendet.
Das Problem ist hier unseren Kunden zumuten zu müssen, dass diese das selbst konfigurieren müssten. Ist ja auch teilweise ein Problem mit den Userrechten.

taveuni 23. Mai 2012 09:59

AW: Probleme bei der Protierung eines Dienstes von WinXP nach Win7
 
Zitat:

Zitat von Lord_Stifterl (Beitrag 1167571)
jedoch wechselt der Status wie oben beschreiben erst nach ca. 90 Sekunden auf "Wird ausgeführt". Ich konnte auch erkennen, dass zu diesem Zeitpunkt plötzlich auch alle anderen Dienste (vom System bzw. andere SW) erst gestartet wurden.

Wie jetzt? Alle Dienste starten delayed? Aber nur wenn Dein Dienst installiert ist?

Lord_Stifterl 23. Mai 2012 11:34

AW: Probleme bei der Protierung eines Dienstes von WinXP nach Win7
 
Zitat:

Wie jetzt? Alle Dienste starten delayed?
Naja...die anderen Dienste sind vom System bzw. den anderen SW-Herstellern bewusst als "delayed start" registriert worden und starten daher verzögert. Mein Dienst startet verzögert obwohl er als normaler "Autostart" Dienst registriert wurde.

taveuni 23. Mai 2012 12:03

AW: Probleme bei der Protierung eines Dienstes von WinXP nach Win7
 
Wer macht den so was? Und weshalb?
Könnte es sein dass auch der Dienst welcher verantwortlich für den Start der Dienste ist delayed startet?

Anders gefragt - gibt es auf dem System überhaupt einen Dienst welcher normal startet?

jaenicke 23. Mai 2012 12:09

AW: Probleme bei der Portierung eines Dienstes von WinXP nach Win7
 
Das solltest du problemlos via ChangeServiceConfig2 und SERVICE_CONFIG_DELAYED_AUTO_START_INFO ändern können:
http://msdn.microsoft.com/en-us/libr...(v=vs.85).aspx
In XE2 ist das in der Unit Winapi.WinSvc oder so ähnlich, in deiner musst du es evtl. manuell deklarieren.

Lord_Stifterl 23. Mai 2012 13:05

AW: Probleme bei der Portierung eines Dienstes von WinXP nach Win7
 
Zitat:

Wer macht den so was? Und weshalb?
Die "delayed start" Variante wurde erst, wenn ich es richtig in Erinnerung hab von Win7 eingeführt um den Bootvorgang des Systems zu beschleunigen. Zuerst starten nur alle Systemdienste und anschließend nach einem 120 Sek. delay alle anderen Dienste bzw. so wie ich es verstanden haben, wird ein Dienst gestartet der dann erst alle anderen verzögert startet. Es wird von MS so empfohlen, wenn es nicht unumgänglich ist diesen delayed start zu verwenden.

Zitat:

Das solltest du problemlos via ChangeServiceConfig2 und SERVICE_CONFIG_DELAYED_AUTO_START_INFO ändern können
Das Problem ist, das der Service lt. Registry nicht als DelayedAutoStart konfiguriert ist. Und das ist auch der Punkt an dem ich mit meinem Latein am Ende ist.


Alle Zeitangaben in WEZ +1. Es ist jetzt 09:09 Uhr.
Seite 1 von 2  1 2      

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