2011-03-17 27 views
7

Acabo de encontrar que el problema no está relacionado con el webmethod.No se puede obtener la sesión en webmethod en asp.net

Es causado por otro problema.

Configuré Session["PhotoId"] en un aspx normal. Pero no puedo recuperar el valor en el webMethod de la página aspx.

[WebMethod(EnableSession=true)] 
    public static string Submit(string data1, ...) 
    { 
     string test = HttpContext.Current.Session["PhotoId"]; // test is null 
    } 

¿Qué debo hacer?

+1

compruebe si el sessionid es el mismo. – Aravind

Respuesta

13

Como veo, todo debería estar bien aquí.

En cuanto a HttpContext.Current.Session no es nulo, aquí se admite el estado de la sesión. Asegúrese de configurar la sesión ["PhotoId"].

se puede comprobar si se trata de la misma sesión mediante el examen de

HttpContext.Current.Session.SessionID 

tanto en ASPX normal y WebMethod.

+0

La identificación de la sesión es diferente. Esto me ayuda a resolver mi problema. Gracias. – Billy

+3

¿Podría compartir cómo ha resuelto el problema? –

+0

¿Cómo o por qué SessionId podría ser diferente? – ibubi

0

Debe usar el método ToString() para usar la sesión como una cadena.

[WebMethod(EnableSession=true)] 
public static string Submit(string data1, ...) 
{ 
    string test = HttpContext.Current.Session["PhotoId"].ToString(); 
} 
Cuestiones relacionadas