PC SOFT

FORUMS PROFESSIONNELS
WINDEVWEBDEV et WINDEV Mobile

Accueil → WINDEV 2024 → Arrêt du service de ... N'est jamais appelé.
Arrêt du service de ... N'est jamais appelé.
Débuté par Jean, 19 fév. 2020 20:31 - 5 réponses
Posté le 19 février 2020 - 20:31
Bonjour,

J'ai créé un service très simple pour vérifier et tous mes test indiquent que l'évènement "arrêt du service" n'est jamais appelé.

Et vous?
Membre enregistré
3 846 messages
Popularité : +227 (347 votes)
Posté le 19 février 2020 - 22:00
Bonjour,
Dans quelles conditions le service doit il s'arrêter ?(Hors intervention extérieure)
Cette condition a-t-elle été implémentée.

--
Il y a peut être plus simple, mais, ça tourne
Message modifié, 19 février 2020 - 22:01
Posté le 20 février 2020 - 04:37
Il n'y a que deux évènements pour gérer un service :

1. Exécution du service (appelé en boucle),
2. Arrêt du service.

Le service peut donc s'arrêter de trois manières :

1. Dans l'évènement "Exécution du service" en appelant la fonction FinService(fsArrêt),
2. A l'aide d'un programme extérieur comme le gestionnaire des services ou avec un programme WinDev qui utilise la commande "ServiceArrête" (Avec les droits administrateur).
3. Lors de l'arrêt de l'ordinateur sur lequel tourne le service.

Dans les trois cas, la documentation est claire :

- A partir du début du processus d'arrêt du service, l'événement "Exécution du service" n'est plus appelé en boucle et l'évènement "Arrêt du service" est automatiquement appelé.

Or, ce n'est pas le cas.
Le service s'arrête bien mais le code présent dans l'évènement "Arrêt du service" n'est JAMAIS exécuté.

Pour en être certain, il suffit de mettre le code suivant dans l'évènement "Arrêt du service" :

ServiceEcritEvénementJournal("Si vous voyez ce message dans le journal des évènements, c'est que le code est bien exécuté mais malheureusement vous ne le verrez jamais...", ejInformation)


Et de constater que lors de l'arrêt du service, cette information n'apparaîtra JAMAIS dans le journal des évènements Windows.
Cela confirme que le code présent dans "Arrêt Service" n'est pas exécuté.

Pour ceux qui n'ont pas le temps de coder un service, prenez l'exemple de PC Soft "WD Service", installez, démarrez, stoppez et constaterez strictement la même chose.
Membre enregistré
386 messages
Popularité : +13 (13 votes)
Posté le 21 février 2020 - 11:59
Bonjour,

Je n'arrive pas à reproduire votre cas d'erreur. J'ai réalisé un service on ne peut plus simple :
//--[Initialisation de Service_Test]------------------------------
TraceDébut(trFichier,fRepExe() + [fSep()] + "trace.txt")
Trace(DateHeureSys,"Démarrage service")

//--[Exécution du service de Service_Test (appelé en boucle)]-----
Trace(DateHeureSys,"exécution de la boucle")
ServiceTemporise(300)

//--[Fermeture de Service_Test]-----------------------------------
Trace(DateHeureSys,"Fermeture du service")

//--[Arrêt du service de Service_Test]----------------------------
Trace(DateHeureSys,"Arrêt du service")


Après installation, puis démarrage, fermeture, redémarrage à volonté, les logs dans le fichier trace.txt indiquent bien que toutes les procédures sont bien exécutées :
20200221115050747 Démarrage service
20200221115050749 exécution de la boucle
20200221115053751 exécution de la boucle
20200221115056752 exécution de la boucle
20200221115059754 exécution de la boucle
20200221115101589 Arrêt du service
20200221115101591 Fermeture du service
20200221115103756 Démarrage service
20200221115103758 exécution de la boucle
20200221115106760 exécution de la boucle
20200221115109763 exécution de la boucle
20200221115112765 exécution de la boucle
20200221115115766 exécution de la boucle
20200221115118767 exécution de la boucle
20200221115121769 exécution de la boucle
20200221115124770 exécution de la boucle
20200221115124993 Arrêt du service
20200221115124995 Fermeture du service
Posté le 21 février 2020 - 20:50
Bonjour,

A la lecture de ton mail, j'ai désinstallé puis réinstallé WD.
J'ai réparé le projet et relancé le test.

Et l'inexplicable s'est produit : cela fonctionne.
C'est à y perdre son latin et j'ai vraiment perdu 10 fois plus de temps que prévu }:(

Bref…
Membre enregistré
6 messages
Posté le 22 février 2020 - 00:49
Benjamin a écrit :
Bonjour,

Je n'arrive pas à reproduire votre cas d'erreur. J'ai réalisé un service on ne peut plus simple :
//--[Initialisation de Service_Test]------------------------------
TraceDébut(trFichier,fRepExe() + [fSep()] + "trace.txt")
Trace(DateHeureSys,"Démarrage service")

//--[Exécution du service de Service_Test (appelé en boucle)]-----
Trace(DateHeureSys,"exécution de la boucle")
ServiceTemporise(300)

//--[Fermeture de Service_Test]-----------------------------------
Trace(DateHeureSys,"Fermeture du service")

//--[Arrêt du service de Service_Test]----------------------------
Trace(DateHeureSys,"Arrêt du service")


Après installation, puis démarrage, fermeture, redémarrage à volonté, les logs dans le fichier trace.txt indiquent bien que toutes les procédures sont bien exécutées :
20200221115050747 Démarrage service
20200221115050749 exécution de la boucle
20200221115053751 exécution de la boucle
20200221115056752 exécution de la boucle
20200221115059754 exécution de la boucle
20200221115101589 Arrêt du service
20200221115101591 Fermeture du service
20200221115103756 Démarrage service
20200221115103758 exécution de la boucle
20200221115106760 exécution de la boucle
20200221115109763 exécution de la boucle
20200221115112765 exécution de la boucle
20200221115115766 exécution de la boucle
20200221115118767 exécution de la boucle
20200221115121769 exécution de la boucle
20200221115124770 exécution de la boucle
20200221115124993 Arrêt du service
20200221115124995 Fermeture du service


I nedded this thank u


https://snaptube.cam/
https://syncnet.onl/telegram-web/
https://vidmate.bid/