J'ai conçu un service Windows en C#, qui s'exécute en continu et génère trois threads. Le premier thread s'exécute toutes les 15 s. Le deuxième thread s'exécute toutes les min. Et les thirs ne s'exécute qu'une seule fois.Raisons pour lesquelles le service Windows doit s'arrêter
Mon problème est que ce service de Windows s'arrête d'une manière ou d'une autre après quelques jours. Il n'y a rien de journal dans le journal des événements le jour de l'arrêt. Et il n'a rien écrit dans le fichier de journalisation.
Je veux savoir quelles sont les différentes raisons pour lesquelles un service Windows s'arrête brusquement. Et ce service n'est pas sur ma boîte de DEV, il est sur le serveur de QA.
espérons que cela a du sens!
Ceci est correct. Chaque thread * doit * avoir un bloc try/catch qui attrape n'importe quelle 'Exception' et gère l'échec gracieusement (log to Event Log est une bonne solution si rien d'autre n'est applicable). Dans le cas contraire, une exception non gérée dans un thread détruira tout votre service. –
Si vous n'utilisez pas la journalisation failstop (c'est-à-dire que le journal des événements peut afficher des autorisations), assurez-vous que le code de gestion des erreurs comporte également un try/catch ou un échec du journal. – nitzmahone
@Daniel Pryden: Une exception dans un thread ne sera-t-elle pas interceptée par un gestionnaire 'AppDomain.UnhandledException'? Ou n'est-ce pas un moyen fiable? –