2010-03-31 11 views
3

Nous avons utilisé PollingDuplexHttpBinding depuis un certain temps pour faire la messagerie Pub/Sub. Nous avons des méthodes qui ne renvoient pas de résultats permettant aux clients de s'abonner à un flux de données, puis le service repousse les données via les contrats CallBack. Nous venons d'ajouter quelques méthodes Request/Reply à notre OperationContract. Comme les clients sont Silverlight 3, ces méthodes sont appelées en utilisant le modèle async Begin() End(). Le problème est que nous ne pouvons pas obtenir ce travail en utilisant PollingDuplexHttpBinding. Nous obtenons toujours l'erreur suivante (lorsque la pile client HTTP est utilisée):WCF, Silverlight: Request/Reply est-il possible via PollingDuplexHttpBinding?

Le serveur n'a pas fourni de réponse significative; Cela peut être dû à une incompatibilité de contrat, à une fermeture de session prématurée ou à une erreur interne du serveur.

Avec pile de navigateur nous obtenons HTTP 500: Not Found.

Lors du passage à BasicHttpBinding les Request/Reply méthodes sont appelées tout à fait bien, mais il est évident Pub/Sub méthodes ne peuvent pas être utilisés avec cette liaison.

Nous pourrions utiliser deux points de terminaison séparés pour chaque type de messagerie, mais ne le préférerions pas et il me semble étrange qu'une liaison ne supporte que le modèle Pub/Sub (même si c'est la motivation pour PollingDuplexHttpBinding).

Quelqu'un pourrait-il éclaircir ça pour moi? C'est possible?

Répondre

2

Nous n'avons jamais réussi à faire fonctionner cela. Nous utilisons BasicHttpBinding pour toutes nos opérations Request/Reply entre nos applications Silverlight 4 et nos services WCF 4. Ce sont tous des appels de méthode asynchrone (doivent être avec Silverlight) pour les services par appel. Pour les situations où nous devons faire un push serveur, nous avons un service WCF en session qui maintient une connexion PollingDuplexHttpBinding au client Silverlight et nous utilisons des contrats de rappel avec des méthodes unidirectionnelles pour effectuer des appels.

Impossible d'obtenir des opérations de demande/réponse pour fonctionner avec PollingDuplexHttpBinding, mais jamais trouvé d'autorité sur le sujet non plus ...