为什么在ASP.NETMVC应用程序中使用SignalR 2.x库时HTTPContext.Current.Session为空?

编程入门 行业动态 更新时间:2024-10-24 14:26:45
本文介绍了为什么在ASP.NETMVC应用程序中使用SignalR 2.x库时HTTPContext.Current.Session为空?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧! 问题描述

我正在尝试将我们的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为空?

本文发布于:2023-11-09 15:53:03,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1572785.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:为空   应用程序   SignalR   ASP   NETMVC

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!