2011-11-03 4 views

Répondre

0

La raison pour laquelle Silverlight ne coupe pas en tant que client pour la communication WF4 duplex est la longue nature de fonctionnement des flux de travail. WF4 explique, à juste titre, qu'un client ne sera pas présent pendant toute la durée du flux de travail, de sorte que le canal duplex normal, qui repose sur le fait que le client conserve l'objet proxy actif, n'est pas suffisant. WF4 utilise donc un duplex durable où le callback duplex est vraiment un appel complètement séparé et ne repose pas sur l'objet proxy d'origine. Mais le résultat est qu'il nécessite que le client soit un WCH ServiceHost et donc une pile WCF complète. Et bien sûr Silverlight ne contient que la partie client de la pile WCF et non le ServiceHost car ce n'est normalement pas nécessaire dans le navigateur.

Jusqu'ici, une solution de contournement existe. Si vous savez que votre flux de travail n'est pas disponible depuis longtemps, vous pouvez utiliser le duplex d'interrogation Silverlight pour communiquer avec un service WCF standard et le communiquer avec le flux de travail duplex. Mais cela dit, cela rend l'architecture un peu plus complexe et le WCF en duplex est déjà une bête complexe et sujette aux erreurs, donc je ne le ferais qu'en cas de besoin.

Questions connexes