2

我尝试将我的对象存储到 asmx Web 服务中的会话

 user = new MyUser(UserName);
 Session["user"] = user;

并从页面加载部分的母版页中读取,但我得到 null

user = (MyUser)Session["user"];

当我尝试使用简单的字符串而不是MyUser对象时它会起作用

任何的想法?

谢谢。

4

3 回答 3

5

假设运行您的服务的进程与为您的页面提供服务的进程相同,您需要确保 WebMethod 启用了会话,方法是使用

[WebMethod(EnableSession = true)]

这是另一个更详细的答案。

于 2012-07-04T20:57:55.360 回答
0

谁是服务的客户,谁是页面的客户?他们是否共享 cookie?

这些问题的答案很重要,因为会话共享涉及共享具有相同会话 ID 的会话 cookie。

从您所写的内容来看,尚不清楚,但很可能您只需要在两个客户端(Web 服务客户端和页面客户端)之间共享(例如复制)cookie。

于 2012-07-04T17:43:08.623 回答
0

我找到了解决方案!在母版页中,我尝试阅读有关该Page_Load事件的会话,但这是错误的。当我投入Page_Init活动时,它起作用了:)

于 2012-07-05T10:46:07.597 回答