2010-04-29 11 views
4

Nous avons un client .NET appelant un service Web Java utilisant SSL. Parfois, l'appel échoue en raison d'une mauvaise connectivité (le client .NET est une interface utilisateur utilisée à partir des emplacements les plus étranges). Nous aimerions implémenter un mécanisme de réessai automatique qui réessayera automatiquement un appel manqué X fois avant d'abandonner. Cela devrait être fait uniquement avec des types spécifiques d'exceptions de connectivité (et non pour les exceptions générées par le service Web lui-même)..NET Webservice Client: Réessayer automatiquement en cas d'échec d'appel

Nous avons essayé de trouver comment le faire sur le niveau de liaison/canal, mais échoué ... des idées?

Merci, yonadav

Répondre

2

Découvrez la Exception Michelle Bustamante Handling Proxy Generator. Il gère automatiquement réitérations:

http://wcfproxygenerator.codeplex.com/

Sur le site:

Cet outil personnalisé étend WCFProxyGenerator pour fournir un proxy de gestion des exceptions. Il génère un proxy supplémentaire appelé ExceptionHandlingProxy qui hérite d'ExceptionHandlingProxyBase - ce dernier implémentant la fonctionnalité de la fonctionnalité du proxy. Le résultat est que vous pouvez choisir d'utiliser le proxy par défaut qui hérite ClientBase ou ExceptionHandlingProxy, qui encapsule la gestion de la durée de vie de la fabrique et du canal du canal. ExceptionHandlingProxy respecte vos sélections dans la boîte de dialogue Ajouter une référence de service en ce qui concerne les méthodes asynchrones et les types de collection.

+3

Merci pour la réponse. Cette solution semble assez compliquée, n'y a-t-il pas de solutions plus simples? MS n'a-t-elle pas inclus de framework d'extension pour ClientBase sans avoir besoin de remplacer le générateur? – Yon