Traiter avec WCF service de redémarrer sur le côté client

J'ai un client graphique qui est en cours d'exécution à l'encontre d'un WCF services hébergés en tant que service Windows sur un serveur de la boîte. Le service WCF est en cours d'exécution dans PerCall InstanceContextMode, et le client a un singleton instance du service client et je veux éviter reinstantiating le singleton sur chaque appel, car elle rend la vie difficile pour les nombreux appels asynchrones j'ai.

Le problème pour moi est, après le service Windows redémarré, chaque fois que le client effectue un appel, il obtient un message d'exception comme ceci:

Ce canal ne peut plus être utilisé pour envoyer des messages que la sortie de la session a été auto-fermée en raison d'un initiées par le serveur de l'arrêt. Soit désactiver la fermeture automatique en définissant la DispatchRuntime.AutomaticInputSessionShutdown à faux, ou envisager de modifier l'arrêt de protocole avec le serveur distant.

Quelle est la meilleure façon de contourner ce problème? Je peux mettre try-catch clauses autour de tous les appels vers le service client et retrouver l'instance du singleton sur la communication des exceptions, mais qui va impliquer beaucoup de code réutilisable..

OriginalL'auteur theburningmonk | 2009-12-31