2011-09-27 14 views
6

Sto utilizzando il servizio WCF (tramite l'attributo WebGet).Accesso alla sessione nel servizio WCF da WebHttpBinding

Sto cercando di accedere sessione dal servizio WCF, ma HttpContext.Current è nullo

ho aggiunto AspNetCompatibilityRequirements e web.config modificato, ma ancora non riesco ad accedere a sessione.

È possibile utilizzare WebGet e Session insieme?

Grazie!

risposta

5

Sì, è possibile. Se si modifica il web.config:

<system.serviceModel> 
    <serviceHostingEnvironment aspNetCompatibilityEnabled="true" /> 
</system.serviceModel> 

e aggiungere il AspNetCompatiblityRequirements, il HttpContext.Current dovrebbero essere disponibili.

Controllare tutto ancora una volta, forse hai messo l'attributo nel posto sbagliato (l'interfaccia al posto della classe?).

+2

Ho attributo, ma non c'è sessione. WebHttpBinding è compatibile con la sessione? –

4

Un servizio RESTfull con una sessione?

Vedi eccellente discussione qui: Can you help me understand this? "Common REST Mistakes: Sessions are irrelevant"

http://javadialog.blogspot.co.uk/2009/06/common-rest-mistakes.html (punto 6)

e

http://www.peej.co.uk/articles/no-sessions.html

Citazione di Paul Prescod:

Le sessioni sono irrilevanti.

Non ci dovrebbe essere bisogno di un client per "accedere" o "avviare una connessione". L'autenticazione HTTP viene eseguita automaticamente per ogni messaggio. Le applicazioni client sono utenti delle risorse , non dei servizi. Quindi non c'è niente a cui accedere! Diciamo che stai prenotando un volo su un servizio web REST. Si non creare una nuova connessione "sessione" al servizio. Piuttosto, chiedi allo "l'oggetto creatore del percorso" per creare un nuovo itinerario. Puoi iniziare a riempire gli spazi vuoti, ma poi ottenere un componente completamente diverso altrove sul Web per riempire altri spazi vuoti. C'è nessuna sessione quindi non c'è alcun problema di migrazione dello stato della sessione tra i client . Non esiste inoltre alcun problema di "affinità di sessione" nel server (sebbene continui a verificarsi problemi di bilanciamento del carico).

Problemi correlati