J’ai dans ma poche gauche un service Windows développé en C# (en .net 2.0 beta 2) qui fait tout un tas de traitements relativement longs.
Pour ce service, l’appel des méthodes OnStart, OnPause, OnContinue et OnStop par le Service Control Manager (ou SCM pour les intimes) peut donc prendre assez de temps pour parfois m’obliger à appeler RequestAdditionalTime() pour notifier au SCM que le service répond bien.
Problème: MSDN dans ma poche droite me dit que RequestAdditionalTime() ne peut être appelé dans une méthode OnShutdown.
En effet, lors de l’arrêt de la machine, j’ai bien mon appel de méthode OnShutdown mais le serveur s’arrête avant même que le service ait fini ses traitements (qui peuvent être longs…) …
Je n’ai pas trouvé de solution à ce problème, et malgré ce que dit MSDN, OnShutdown ne se comporte pas comme un OnStop… (pour exemple, lors d’un OnShutdown, le journal des événements n’est plus disponible pour y inscrire les différents problèmes d’arrêt).