PC SOFT

FOROS PROFESIONALES
WINDEVWEBDEV y WINDEV Mobile

Inicio → WINDEV 2025 → Arrêt du service de ... N'est jamais appelé.
Arrêt du service de ... N'est jamais appelé.
Iniciado por nomail, 19,feb. 2020 20:31 - 5 respuestas
Publicado el 19,febrero 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?
Miembro registrado
4.362 mensajes
Publicado el 19,febrero 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
Mensaje modificado, 19,febrero 2020 - 22:01
Publicado el 20,febrero 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.
Miembro registrado
499 mensajes
Publicado el 21,febrero 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
Publicado el 21,febrero 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…
Miembro registrado
6 mensajes
Publicado el 22,febrero 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/