Comment guérir reproché WCF canaux?

Quand un seul ClientBase<T> exemple, est utilisé pour de multiples WCF service d'appels, il peut obtenir un canal dans un reproché à l'etat (c'est à dire. lorsque le service est en panne).

Je voudrais guérir le canal automatiquement lorsque le service se lève de nouveau. La seule façon que j'ai trouvée est d'appeler le code suivant avant chaque appel de méthode:

if (clientBase.InnerChannel.State == CommunicationState.Faulted)
{
      clientBase.Abort();
      ((IDisposable)clientBase).Dispose();
      clientBase = new SampleServiceClientBase();
}

J'ai eu le sentiment que ce n'est pas la bonne façon de le faire. Quelqu'un a une meilleure idée?

OriginalL'auteur Jader Dias | 2010-01-05