当我覆盖OnConnected
/ OnDisconnected
,然后查找HttpContext.Current.Session
的会话时为空。
我假设此时已经创建了一个Session。我想念一下吗?
答案 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应用程序位于单个服务器上的情况。