2009-02-19 5 views
3

J'envisage d'utiliser un client proxy WCF partagé (lecture statique) pour une application à haut débit. Je crois qu'il y a un gain de performance à faire cela, mais je n'ai pas encore évalué cela.Quelles sont les pièges de l'utilisation d'un client proxy WCF statique partagé?

Y a-t-il de sérieux pièges à cette idée? De mes recherches, je peux voir qu'il y a le problème de la gestion de l'état d'erreur, on ne sait pas quel serait le flux de cet état pour d'autres demandes en attente.

Est-ce que quelqu'un a de l'expérience en récupérant un proxy WCF de son état défectueux?

merci à l'avance!

+0

voici un article connexe http://jeffbarnes.net/portal/blogs/jeff_barnes/archive/2007/04/24/wcf-your-proxy-can-only-fault-once.aspx –

+0

C'est un bon article article, mais cela n'explique pas ce qui arrive aux autres demandes en attente –

Répondre

4

Une fois que le canal est dans un état défectueux, il restera ainsi. Alors oui, je pense qu'un client statique serait problématique. J'ai commencé ainsi, mais j'ai fini par créer et ouvrir une nouvelle chaîne pour chaque appel. Il ne semble pas y avoir beaucoup de compromis en matière de performance.

Pour référence, je fais environ 30-60 demandes d'environ 5K-30K par requête par seconde sur une machine quad core à partir d'une autre machine quad core. La WCF a très bien résisté jusqu'ici.

+0

Avez-vous essayé d'utiliser le "client.InnerChannel.AllowOutputBatching = true;" ? Je pensais que cela pourrait être là où l'augmentation de la performance pourrait se trouver –

+0

Non, le mien est tout à fait une configuration «hors de la boîte». Les seules choses que j'ai changées étaient d'augmenter le MaxItemsInObjectGraph et MaxRecievedMessageSize. N'avez pas essayé AllowOutputBatching. Serait intéressant de voir à quel point cela fonctionne. – Fung

2

Je viens de découvrir que l'appel de Close() sur le proxy bloquera quand les appels qui sont des opérations One Way exécutent [OperationContract (IsOneWay = true)]. Cela changerait le flux aussi.

Questions connexes