compose web-services session

web services - compose - Variables de sesión y servicios web



docker-compose volumes (7)

Acabo de escribir mi primer servicio web, así que supongamos que el conocimiento de mi servicio web no existe. Quiero intentar llamar a una función dbClass desde el servicio web. Sin embargo, necesito algunos parámetros que están en la sesión. ¿Hay alguna forma de que pueda obtener estas llamadas a estas variables de sesión desde el servicio web?


Si está utilizando servicios web ASP.NET y desea mantener un entorno de sesión para usted, debe embellecer su método de servicio web con un atributo que indique que necesita una sesión.

[WebMethod(EnableSession = true)] public void MyWebService() { Foo foo; Session["MyObjectName"] = new Foo(); foo = Session["MyObjectName"] as Foo; }

Una vez que haya hecho esto, puede acceder a objetos de sesión similares a aspx.

Metro.


si tiene que querer Session ["username"]. ToString (); como en las otras páginas de C # detrás de aspx, simplemente debe reemplazar [WebMethod] sobre el método WebService con [WebMethod (EnableSession = true)]

gracias a :) Metro


Para usar la sesión en el servicio web, debemos seguir 2 pasos:

  1. Utilice el atributo [WebMethod (EnableSession = true)] en el método.
  2. Sesión ["Nombre"] = 50 (lo que quieras guardar) Por favor, comprueba el siguiente ejemplo.

[WebMethod(EnableSession = true)] public void saveName(string pname) { Session["Name"] = pname; }


Debe evitar aumentar la complejidad de la capa de servicio que agrega variables de sesión. Como alguien señaló anteriormente, piense en los servicios web como métodos aislados que toman todo lo que se necesita para realizar la tarea desde su lista de argumentos.


En general, los servicios web no deben basarse en los datos de la sesión. Piense en ellos como métodos ordinarios: los parámetros entran y sale una respuesta.


Su pregunta es un poco vaga, pero haré mi mejor esfuerzo para responder.

Supongo que las variables de sesión existen en el servidor que realiza la llamada al servicio web y no en el servidor que aloja el servicio web. En ese caso, deberá pasar los valores necesarios como parámetros de sus métodos de servicio web.


Tal vez esto funcione HttpContext.Current.Session ["Name] O bien podría tener que tomar algunos parámetros o almacenarlos en una base de datos