Domanda

Sto usando il canale WCF PollingDuplexHttpBinding per le notifiche push per i client Silverlight. Per la maggior parte funziona bene, ma sto combattendo per ottenere un paio di funzioni di gestione sessione di base per funzionare correttamente.

Il problema più grande che hai è cercando di lasciare che il server sapere il cliente ha finito con una sessione e non richiede più alcuna notifica. La chiamata CloseAsync sul client si ferma lato client del canale di inviare richieste di nuove notifiche solo per quella sessione e invia anche una richiesta CloseSession SOAP al server. Il problema è il lato server del canale restituisce una 404 dicendo che non riconosce l'azione CloseSession. Per quanto posso vedere che l'errore sia dai meccanismi interni del canale PollingDuplexHttpBinding e non lo rende fino a l'applicazione in modo che la chiusura sessione può essere tenuto con cura.

Qualcun altro ha incontrato questo problema e, forse, trovato un modo intorno ad esso?

È stato utile?

Soluzione

Non può essere fatto tramite gli sguardi, Lamentele su PollingDuplexHttpBinding .

Altri suggerimenti

Bene quell'articolo lamentela era semplicemente incredibile, e, indirettamente, ha risolto un problema correlato ho avuto con Silverlight lavorare molto lentamente quando si fa Duplex su HTTP. Bsaically, il problema è causato da avere ASP.Net stato sessione attivata nel sito e utilizzando BroserHttp stack di Silverlight (invece di pila ClientHttp).

Yavor fa un buon lavoro (in questo articolo) di spiegare il problema:

http://blogs.msdn.com/b/silverlightws/archive/2009/09/30/having- a-pollingduplex-servizio-e-qualsiasi-altra-WCF-service-in-the-same-Website-cause-silverlight-chiamate-to-be-slow.aspx

La soluzione semplice, se hai questo problema è quello di registrare un percorso per lo stack ClientHttp prima di richiamare il vostro servizio. Questo può essere ottenuto semplicemente chiamando il numero:

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

Dove requestUri è un URI del vostro servizio. Spero che questo aiuti.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top