2010-09-01 4 views
2

Imaginez un service WCF en mode duplex contenant une liste d'abonnés. À un moment donné, le service envoie des données à tous les abonnés, et certains d'entre eux peuvent immédiatement rappeler le service. Le mode ConcurrencyMode du service est Single, donc cet appel échoue avec une exception.Comment traiter le modèle d'appel réentrant dans WCF?

Je voudrais éviter cette exception et a trouvé deux solutions possibles:

  1. Modifier le ConcurrencyMode réentrant ou même plusieurs. Cela nécessite une synchronisation interne, donc je préfère l'éviter.
  2. Assurez-vous que le client attend que l'appel du serveur se termine avant d'appeler à nouveau. Cela nécessite une mise en mémoire tampon du côté client, mais je l'utiliserai probablement encore.

Que pensez-vous de ces idées? Y a-t-il d'autres moyens? Comment l'avez-vous résolu?

Répondre

0

Je vous suggère de lire le chapitre 8.2 de Programming WCF Services par Juval Lowy. Il traite de la question de la réentrance ainsi que de la conception de la réentrance, car il peut y avoir quelques pièges.

+0

Ajouté à ma liste de souhaits :) Pourriez-vous résumer rapidement les idées données? – mafu

Questions connexes