3

请帮忙,因为自上周以来这一直让我发疯,我仍然没有接近解决方案......

环境:IIS 7.5、.Net 4.0、jQuery(最新)

我有一个内部 Web 服务,我调用它来创建一个由许多客户及其关系组成的层次结构对象。在我的 Web 服务中,我将层次结构对象存储在HttpContext.Current.Session.

不久之后,在我的 javascript 中,我遍历了用户可见的客户。对于每个客户,我调用一个 $.ajax 函数,该函数调用我的 Web 服务中的另一个过程。在 C# 代码中,我从我的层次结构对象中HttpContext.Current.Session读取并使用 linq 读取当前客户的数据。

我的问题是HttpContext.Current.Session["hierarchy"]某些客户返回 null 。即使我调用完全相同的 url,每次的客户也不相同。

我已经尝试在写入之后立即读取层次结构,HttpContext.Current.Session只是为了验证我的层次结构对象中的所有内容实际上都写入了HttpContext.Current.Session.

我尝试记录HttpContext.Current.Session.SessionId以验证会话是否相同并且所有内容都加起来。

EnableSessionState我在我的 Default.apsx 中尝试过使用和不使用

提前感谢任何可以指导我正确方向的人...

./CJ

4

2 回答 2

2

如果您使用的是 ASMX Web 服务(希望不是),请确保在每种方法之上都有以下内容:

[WebMethod(EnableSession = true)]

否则,关于 WCF,Xing 是正确的。我从经验中知道,如果您不手动打开 ASP.NET 会话,会话将返回 null。

于 2012-10-22T12:30:21.230 回答
2

您的 Web 服务是由 WCF 制成的吗?如果是这样,则根本没有会话,除非启用了 asp.net 兼容模式。

于 2012-10-22T12:25:48.290 回答