我正在尝试将我们的ASP.NET MVC应用程序从使用Signal R1.x TGO SignalR 2.x迁移。我刚刚发现了一个问题,它肯定会给我们前进的道路带来问题。
我们的Web应用程序是基于MVC的,并且大量使用HttpContext.Current.Session变量。 使用SignalR 1.x运行时,使用会话一切正常。
当我们升级到SignalR 2.x时,会话突然为空。
我在谷歌上搜索了一下,找到了以下有关该问题的链接: HTTPContext.Current.Session is nul in SignalR...need alternate to Session state while using SignalR
进一步调查发现以下信息: www.asp/signalr/overview/signalr-20/troubleshooting-and-debugging/troubleshooting
HTTPContext.Current.Session is null This behavior is by design. SignalR does not support the ASP.NET session state, since enabling the session state would break duplex messaging.我想这会破坏很多基于ASP.NETMVC的应用程序。 是否有解决此问题的方法?
这是真的设计出来的,还是在2.x中使用oWin::>Startup::Configuration(){app.MapSignalR();}启动SignalR的结果?
如果可能,我想解决这个问题,如果解决方案不是那么痛苦,他们仍然会考虑迁移到2.x。
想法?
SignalR中不支持推荐答案会话状态,因为它会干扰来自同一用户的同时请求的处理,并且WebSocket请求不支持该状态。在2.0中,该属性为NULL,因为SignalR请求是在会话状态模块初始化之前处理的。这与1.0相比,SignalR在基于System.Web的ASP.NET应用程序中的托管方式发生了变化(在1.0中,它使用ASP.NET路由表中的路由,在2.0中,它使用Microsoft.Owin.Host.SystemWeb提供的OWIN托管模块)。
注意:这仅影响从SignalR类(集线器等)中使用会话,而不影响应用程序的睡觉。
更多推荐
为什么在ASP.NETMVC应用程序中使用SignalR 2.x库时HTTPContext.Current.Session为空?
发布评论