J'essaye de trouver une manière élégante de réessayer une opération quand un canal de WCF est dans l'état défectueux. J'ai essayé d'utiliser Policy Injection AB pour reconnecter et réessayer l'opération lorsqu'une exception d'état défectueux se produit lors du premier appel, mais la méthode PolicyInjection.Wrap ne semble pas aimer l'encapsulation des objets TransparentProxy (proxy renvoyé par ChannelFactory.CreateChannel).Réessayer mécanisme sur l'appel d'opération WCF lorsque le canal dans l'état jugéled
Y at-il un autre mécanisme que je pourrais essayer ou comment pourrais-je essayer de faire fonctionner la solution de PIAB correctement - tous les liens, exemples, etc. seraient grandement appréciés.
Voici le code que j'utilisais qui périclite: var channelFactory = new ChannelFactory(endpointConfigurationName);
var proxy = channelFactory.CreateChannel(...);
proxy = PolicyInjection.Wrap<IService>(proxy);
Merci.
Merci pour votre réponse - c'est très apprécié. Mon seul souci avec cette solution est que je devrais, pour les appels de service impairs 100-200 que j'ai, s'assurer que chaque invocation d'un appel de service est ensuite enveloppé dans un ServiceProxy.Instance.TryInvoke, et d'ajouter à cela, un cauchemar de maintenance assurant que tous les appels de service supplémentaires sont également enveloppés - Je ne vois pas d'autre moyen de contourner cela que d'utiliser Policy Injection AppBlock (ou autre framework de type AOP) - à moins que je ne manque quelque chose. – CraigM