2013-02-20 9 views
1

J'ai un client WCF statique mais je n'arrive toujours pas à comprendre comment puis-je le réinitialiser/le récupérer?Comment faire pour récupérer le client WCF après le redémarrage du service WCF?

un de mes essais:

if (Core.shed.State == CommunicationState.Faulted) { 
    Core.shed.Close(); 
    Core.shed = new wcfClient(); 
    } 

ne fonctionne pas, je suis toujours obtenir

Cannot access a disposed object. Object name: 'System.ServiceModel.Channels.ServiceChannel'. 

Comment dois-je remettre à zéro quand mon service WCF est encore en vie?

+1

Vous ne pouvez pas fermer un canal en état de panne - vous devez l'abandonner et en créer un nouveau. – Tim

Répondre

4

Vous ne pouvez pas fermer un canal WCF défectueux - vous devez l'abandonner et en créer un nouveau. Il n'y a aucun moyen de récupérer ce canal.

Si vous changez cette ligne de code:

Core.shed.Close(); 

à:

Core.shed.Abort(); 

le reste de votre code devrait fonctionner.

Questions connexes