为什么Hub OnConnected / OnDisconnected上没有会话?

时间:2013-01-25 16:47:23

标签: c# .net session signalr signalr-hub

当我覆盖OnConnected / OnDisconnected,然后查找HttpContext.Current.Session的会话时为空。

我假设此时已经创建了一个Session。我想念一下吗?

3 个答案:

答案 0 :(得分:0)

只需确保您的应用已启用会话

通过HtpContext.Current.Session阅读,您似乎需要验证是否

  

“如果未启用会话状态,则无法设置或获取会话状态值。要为应用程序配置会话状态设置,请在Web.config文件中设置sessionState元素的mode属性。当会话状态为启用并从会话状态变量中请求一个不存在的值,返回null“。

如果您认为signalR应该为您启用会话状态,那么[{3}}

不会[由@dfowler确认]

答案 1 :(得分:0)

您是否尝试过GetHttpContext?

var ctx = Context.Request.GetHttpContext();

答案 2 :(得分:0)

您可以直接从OnConnected / OnDisconnected中的cookie获取sessionID:

subprocess

现在拥有sessionID字符串,您可以从自定义单例字典中查找会话,并在每个会话创建时填充 - 例如在Global.asax中,如下所示:

sudo

当然,这仅适用于Web应用程序位于单个服务器上的情况。