Frage

Ich bin mit dem WCF PollingDuplexHttpBinding Kanal-Benachrichtigungen zu Silverlight-Clients zu drücken. es funktioniert gut für den größten Teil, aber ich kämpfe es ein paar Basis-Session-Management-Funktionen zu erhalten, um richtig zu arbeiten.

Das größte Problem, das ich habe versucht, den Server zu informieren, der Client mit einer Sitzung beendet hat und nicht mehr benötigt keine Benachrichtigungen. Der CloseAsync Anruf auf dem Client stoppt die Client-Seite des Kanals von Anfragen für neue Mitteilungen nur für diese Sitzung zu senden und es sendet auch eine SOAP-Anforderung Close an den Server. Das Problem ist die Server-Seite des Kanals 404 zurück sendet sagen, es ist nicht die Close Aktion zu erkennen. Soweit ich die Fehler sehen kann von den Interna des PollingDuplexHttpBinding Kanal ist und es nicht auf die Anwendung zu bilden, so dass die Sitzung Verschluss richtig gepflegt werden.

Hat jemand über dieses Problem kommen und fand vielleicht einen Weg, um es?

War es hilfreich?

Lösung

Kann nicht durch die Blicke getan werden, Gripes auf PollingDuplexHttpBinding .

Andere Tipps

Nun, das Haar in der Suppe Artikel war einfach genial und gelöst indirekt ein verwandtes Problem, das ich habe mit Silverlight sehr langsam arbeiten, wenn Duplex über HTTP zu tun. Bsaically wird das Problem verursacht, indem sie in der Website einge ASP.Net Session State und mit Silverlight BroserHttp Stapeln (statt ClientHttp Stack) verwendet wird.

Yavor macht einen guten Job (in diesem Artikel) der Erläuterung des Problems:

http://blogs.msdn.com/b/silverlightws/archive/2009/09/30/having- a-pollingduplex-Service-und-any-other-wcf-Service-in-the-same-Website-Ursachen-Silverlight-Calls-to-be-slow.aspx

Die einfache Lösung, wenn Sie dieses Problem sind, die ist eine Route für den ClientHttp Stapel zu registrieren, bevor Sie Ihren Dienst aufrufen. Dies kann durch den Aufruf erreicht einfach werden:

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

Wo RequestURI ist ein Uri Ihres Dienstes. Hoffe, das hilft.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top