需要有关在asp.net Web服务中设置和获取会话对象的帮助。我在一个服务方法中保存会话,当尝试检索它时,只给出null。下面的示例代码用于保存会话
[WebMethod(EnableSession = true)]
[ScriptMethod(ResponseFormat = ResponseFormat.Json)]
public string setObj(NameValue[] formVars)
{
MyObject obj = new MyObject();
obj.vlaue = "1";
Session["obj"] = (object) obj;
return new JavaScriptSerializer().Serialize("");
}
获取会话:
[WebMethod(EnableSession = true)]
[ScriptMethod(ResponseFormat = ResponseFormat.Json)]
public string getObj(NameValue[] formVars)
{
MyObject obj = new MyObject();
obj = (MyObject)Session["obj"] ;
return new JavaScriptSerializer().Serialize(obj.value);
}
在上面的代码中,会话数据为空。我还在web配置中添加会话状态但不起作用:
<system.web>
<pages>
<namespaces>
<add namespace="System.Web.SessionState"/>
</namespaces>
</pages>
<sessionState mode="InProc"></sessionState>
感谢。
答案 0 :(得分:0)
我在一个服务方法中保存会话,当尝试检索它时,只给出null。
如果这两个方法在同一个请求中,则它将为null。 .Net中的会话变量在响应头中的客户端设置,但是当您尝试读取它们时,它们来自客户端的请求标头,这些标头在请求发生后没有更改。