加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

为什么在ASP .Net MVC应用程序中使用SignalR 2.x库的HTTPContext

发布时间:2020-12-16 07:06:08 所属栏目:asp.Net 来源:网络整理
导读:我正在尝试使用Signal R1.x tgo SignalR 2.x迁移我们的ASP.Net MVC应用程序.我刚刚发现问题,这肯定会导致我们在向前迈进中遇到问题. 我们的Web应用程序是基于MVC的,并且大量使用HttpContext.Current.Session变量. 当使用SignalR 1.x运行时,一切都很好,并且使
我正在尝试使用Signal R1.x tgo SignalR 2.x迁移我们的ASP.Net MVC应用程序.我刚刚发现问题,这肯定会导致我们在向前迈进中遇到问题.

我们的Web应用程序是基于MVC的,并且大量使用HttpContext.Current.Session变量.
当使用SignalR 1.x运行时,一切都很好,并且使用Session.

当我们升级到SignalR 2.x时,Session突然变为空.

我做了一点谷歌搜索,发现以下关于这个问题的链接:
HTTPContext.Current.Session is nul in SignalR…need alternate to Session state while using SignalR

进一步调查显示以下信息:
http://www.asp.net/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 .Net MVC的应用程序.
这有什么解决方法吗?

这是真正的设计,还是使用oWin ::> Startup :: Configuration(){app.MapSignalR();}来启动2.x中的signalR?

如果可能的话,我想解决这个问题,如果解决方案不那么痛苦,他们仍会考虑转向2.x.

思考?

解决方法

SignalR不支持会话状态,因为它会干扰来自同一用户的同时请求的处理,并且不受WebSockets请求的支持.在2.0中,属性为null,因为在初始化会话状态模块之前处理SignalR请求.这是一个从1.0改变SignalR如何在基于System.Web的ASP.NET应用程序中托管的内容(在1.0中它使用了ASP.NET路由表中的路由,在2.0中它使用了Microsoft.Owin提供的OWIN主机模块. Host.SystemWeb).

请注意,这仅影响SignalR类(集线器等)中的会话使用,而不影响应用程序的其余部分.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读