2010-08-01 7 views
1

J'utilise une ChannelFactory avec netTcpBinding. Parfois, je reçois des exceptions et après cela, je ne peux plus utiliser le canal parce qu'il est en panne.C# ChannelFactory: Comment reconnecter/rouvrir une connexion après FaultException | TimeoutException?

Que dois-je faire pour rétablir la connexion? Devrais-je appeler abort(), puis fermer/ouvrir. ou à proximité(), puis ouvrez(), ou devrais-je utiliser un nouvel objet comme:

myPublicChannel = this.ChannelFactory.CreateChannel(); 

Dois-je rouvrir la connexion juste dans mon bloc catch? Aurai-je besoin d'un mécanisme de verrouillage spécial, car d'autres threads pourraient également utiliser ce canal, puis essayer de rétablir la connexion simultanément.

Merci beaucoup pour votre réponse à l'avance!

Nous vous remercions de votre réponse. Voici un lien que j'ai trouvé qui pourrait être helpfull pour d'autres avec le même problème/question:

http://blogs.msdn.com/b/drnick/archive/2007/11/05/custom-transport-retry-logic.aspx

Répondre

1

Je REELLEMENT près et le mettre à une valeur nulle pour éliminer quoi que ce soit de la connexion puis utilisez ouverte, je l'ai écrit certains services Web avant où ne pas disposer de la ChannelFactory a causé des fuites de mémoire et d'autres problèmes.

Questions connexes