HttpContext.Current.Session为null

时间:2010-08-20 09:11:24

标签: asp.net

我得到HttpContext.Current.Session为null。

如果我们在Web场中托管了应用程序,那么这是一个问题。

1 个答案:

答案 0 :(得分:2)

根据您使用的会话类型,是的,在服务器场上运行可能会导致您出现问题。如果负载均衡器或用于在服务器之间拆分请求的任何内容都是无状态的,那么它只会将请求转发到任何旧服务器。如果会话数据存储在proc中,则它将仅存储在一个服务器上。如果下一个请求转到另一个服务器,则会话数据将不再存在。

执行此操作的最佳方法是使用更智能的负载平衡,这将始终将一个用户请求转发到同一服务器或另一个会话类型,例如独立于Web服务器的会话服务器,并且可以提供一致的会话状态所有网络服务器。

说过我不希望当前会话状态在这些情况下为空,只是空的。我最近在启动新线程的情况下自己调整了空会话,这些新线程似乎无法访问inproc会话状态。

这些问题是否对你来说很难说,但值得一提的是服务器场的问题,以确保你知道。 :)