2012-10-22 87 views
2

请帮助,因为这一直是推动我自上周以来,坚果和我还没有更接近解决方案...会议呼吁空

环境:IIS 7.5,.NET 4.0,jQuery的(最新)

我有一个内部的Web服务,我打电话来创建一个由许多客户和他们的关系组成的层次结构对象。在我的web服务中,我将层次结构对象存储在HttpContext.Current.Session中。

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

我的问题是HttpContext.Current.Session["hierarchy"]为某些客户返回null。即使我打电话完全相同的网址,每次都不是同一个客户。

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

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

我已提前与和没有我的Default.apsx

感谢EnableSessionState想任何人谁可以指导我在正确的方向...

./CJ

回答

2

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

+0

这是WCF是的。我有aspNetCompatibilityEnabled =“true”。 – CJe

2

如果您使用的是ASMX Web服务(希望不是)一定要有每个方法上面下面:

[WebMethod(EnableSession = true)] 

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

+0

它不是一个asmx。这是一个svc。我已经尝试过包括WebMethod属性,但没有任何运气:-(不是我的(Hierarchy)HttpContext.Current.Session [“hierarchy”]每次都返回null,它只有大约20%的时间,另外我应该提到我的代码在本地和测试环境中完美地工作,这是造成问题的预生产环境 – CJe

+1

@ user1480182因此,您的客户的20%始终都返回空值,或者您的所有客户都返回空值的20%时间?如果在分配的过期时间范围内没有服务呼叫,则会话可能过期太快 – ROFLwTIME

+0

如果我循环了例如10个客户,那么几次我会从(Hierarchy)HttpContext.Current返回空值。 Session [“hierarchy”]有时候两个客户会从(Hierarchy)HttpContext.Current.Session [“hierarchy”]中获得null,但有时候会有四个或五个... – CJe