2009-09-25 6 views
0

J'essaye d'écrire une extension qui me permettra, pour chaque opération WCF que je cours, si elle retourne avec une erreur de timeout, de démarrer un nouveau proxy et réessayez (une fois).Besoin d'aide avec les points d'extension WCF pour reconstruire le canal sur le défaut timeout

Je sais que Michelle Leroux Bustamante a écrit un proxy générique qui fait de même, mais j'essaye de le faire sans avoir à modifier ou remplacer le client de service (je suis le mandataire du service fournisseur).

Est-ce possible? En regardant IClientMessageIntercepter, que je crois être le point d'extension dont j'ai besoin, je n'ai pas pu comprendre quoi que ce soit à part modifier le message, ou commenter (c'est-à-dire consigner) le message.

Veuillez nous aider, Merci - Assaf.

Répondre

1

Je ne pense pas que vous puissiez vraiment utiliser un point d'extension pour cela, car ils s'exécutent tous dans le cadre du "pipeline d'exécution" de la requête elle-même, et non en dehors de celle-ci. Vraiment, votre meilleur pari est un proxy modifié, et même si je comprends que vous obtenez un proxy transmis par votre fournisseur, il n'y a aucune raison pour que vous ne puissiez pas conserver tous les contrats de données et définitions de messages et implémenter votre propre custom ClientBase <T> - classe dérivée pour agir en tant que proxy réel (que vous pouvez baser sur le code généré par l'outil de Michelle). Si ce n'est pas une option non plus, alors je suppose que vous serez bloqué à l'ancienne: Envelopper le proxy donné par votre fournisseur dans votre propre classe qui gère vos tentatives.

1

Il n'y a pas de point d'extension pour cela.

Cependant, Castle WCF Facility est une couche d'intelligence au-dessus de WCF et peut le faire pour vous.

La documentation sur le site Web est obsolète, mais regardez les tests unitaires, ou demandez au groupe d'utilisateurs si vous avez des questions.

Questions connexes