2009-01-20 9 views
2

Quel est le meilleur moyen d'assurer la robustesse du service pour empêcher l'indisponibilité d'un service, s'il devient indisponible, y a-t-il un moyen de redémarrer le service?Service WCF robuste

merci d'avance.

Répondre

1

Utiliser une technique d'hébergement. Vous pouvez auto-héberger dans un service Windows et placer l'événement défaillant pour déclencher la fermeture du service. Vous pouvez ensuite utiliser Windows pour redémarrer votre service. Ou si vous avez Windows 2008, vous pouvez utiliser WAS pour héberger votre service, qui le redémarrera automatiquement.

Il est important de réaliser que votre service peut avoir un état, mais qu'il n'y a pas de "thread" qui s'exécute, donc il ne fonctionne pas en tant que tel, l'objet existe simplement. Vous payez en gros Microsoft pour vous fournir .net et WCF qui s'occupent de l'hébergement, ils vous garantissent que votre service restera disponible. Un crash dans une méthode peut endommager le service, mais vous pouvez gérer toutes les exceptions que vous pouvez traiter avec élégance et laisser le système d'exploitation gérer les choses que vous ne pouvez pas (comme les exceptions de mémoire insuffisante, etc.). il est de votre responsabilité de gérer les pannes de service. Au-delà de cela, cependant WCF est extrêmement robuste.

0

Par souci de clarté, Si pour une raison quelconque, je ne gère pas une exception et ce qui a déclenché le service de mettre fin, sous IIS 7.0, le service devrait redémarrer dans un nouvel état.

+0

Si vous ne gérez pas l'exception, cela déclenchera la panne du service. VOUS avez la responsabilité de le nettoyer et de le forcer à le fermer ou à le «déqualifier». – Spence