2 votes

Comment tuer son propre service Windows

Un service WCF est hébergé dans un service Windows (WS).

Lorsque la base de données (SqlServer 2005) tombe en panne, une exception SqlException est levée en raison des actions effectuées sur la base de données.

Ce que je veux faire, c'est que le WS - où le service WCF est hébergé - tombe en panne lorsque la base de données tombe également en panne.

Le WS sera redémarré manuellement d'ailleurs.

Mon idée est de ne rien faire à ce sujet. L'exception non gérée arrêtera le WS.

Est-ce la bonne façon de procéder ?

2voto

marc_s Points 321990

Si vous souhaitez arrêter explicitement votre service Windows, il suffit d'appeler la méthode .Stop() de votre classe de service.

Les services Windows peuvent être configurés pour redémarrer automatiquement en cas d'erreur. Il se peut donc que vous n'obteniez pas ce que vous voulez en laissant simplement l'exception SqlException s'écouler vers le haut.

Marc

1voto

Bhushan Bhangale Points 6284

Tout d'abord, vous devez détecter que le serveur SQL s'est arrêté à partir de la SQLException que vous obtiendrez. Ensuite, pourquoi tuer le webservice au lieu de renvoyer une erreur au client en disant que le service est temporairement hors service pour telle ou telle raison.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X