Question

J'utilise le canal PollingDuplexHttpBinding WCF pour pousser les notifications aux clients Silverlight. Pour la plupart, il fonctionne bien, mais je me bats pour obtenir quelques fonctions de gestion de session de base pour fonctionner correctement.

Le plus gros problème que j'ai essaye de laisser le serveur savoir que le client a terminé avec une session et ne nécessite plus aucune notification. L'appel CloseAsync sur le client arrête le côté client du canal d'envoyer des demandes de nouvelles notifications pour cette session et il envoie également une requête SOAP FermeSession au serveur. Le problème est le côté serveur du canal renvoie un 404 dire qu'il ne reconnaît pas l'action FermeSession. Pour autant que je peux voir que l'erreur est de la structure interne du canal PollingDuplexHttpBinding et ne permet pas à l'application afin que la fermeture de session peut être correctement pris en charge.

Quelqu'un d'autre rencontré ce problème et peut-être trouvé un moyen de contourner cela?

Était-ce utile?

La solution

ne peut pas être fait par les regards, Gripes sur PollingDuplexHttpBinding .

Autres conseils

Bien que l'article gripe était tout simplement génial, et indirectement résolu un problème connexe j'ai eu avec Silverlight travailler très lentement lorsque vous faites Duplex sur HTTP. Bsaically, le problème est dû à la présence session ASP.Net Etat activé dans le site et en utilisant la pile de BroserHttp de Silverlight (au lieu de la pile de ClientHttp).

Yavor fait un bon travail (dans cet article) d'expliquer le problème:

http://blogs.msdn.com/b/silverlightws/archive/2009/09/30/having- un pollingduplex-service et tout-autre-WCF service-in-the-mêmes-site-causes-silverlight-appels-to-be-slow.aspx

La solution simple, si vous rencontrez ce problème est d'enregistrer un itinéraire pour la pile de ClientHttp avant d'appeler votre service. Ceci peut être accompli simplement en appelant:

WebRequest.RegisterPrefix(requestUri.AbsoluteUri, WebRequestCreator.ClientHttp);

Où requestUri est un Uri de votre service. Espérons que cela aide.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top