2011-09-27 25 views
6

Estoy usando el servicio WCF (a través del atributo WebGet).Sesión de acceso en servicio WCF desde WebHttpBinding

Estoy intentando acceder a la sesión de servicio WCF, pero HttpContext.Current es nulo

añadí AspNetCompatibilityRequirements y web.config editado pero todavía no puedo acceder a la sesión.

¿Es posible usar WebGet y Session juntos?

¡Gracias!

Respuesta

5

Sí, es posible. Si edita el web.config:

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

y agrega el AspNetCompatiblityRequirements, la HttpContext.Current debería estar disponible.

Revisa todo una vez más, tal vez has puesto el atributo en el lugar equivocado (¿la interfaz en lugar de la clase?).

+2

Tengo un atributo, pero no hay sesión. ¿Es compatible WebHttpBinding con la sesión? –

4

¿Un servicio RESTfull con una sesión?

Ver excelente discusión aquí: 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)

y

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

Presupuesto de Paul Prescod:

Las sesiones son irrelevantes.

No debería haber necesidad de que un cliente "inicie sesión" o "inicie una conexión". La autenticación HTTP se hace automáticamente en cada mensaje. Las aplicaciones cliente son consumidores de recursos, no servicios. ¡Por lo tanto, no hay nada para iniciar sesión! Digamos que está reservando un vuelo en un servicio web REST. Usted no cree una nueva conexión de "sesión" al servicio. En su lugar, solicite el "objeto creador del itinerario" para crear un nuevo itinerario. Puede comenzar a llenar los espacios en blanco, pero luego obtener un componente totalmente diferente en otro lugar en la web para completar algunos otros espacios en blanco. No hay sesión , por lo que no hay problema de migración del estado de la sesión entre los clientes . Tampoco hay problema de "afinidad de sesión" en el servidor (aunque todavía hay problemas de equilibrio de carga para continuar).

Cuestiones relacionadas