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

2023-12-20

我正在尝试将我们的 ASP.Net MVC 应用程序从使用 Signal R1.x 迁移到 SignalR 2.x。我刚刚发现了一个问题,这肯定会给我们的前进带来问题。

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

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

我做了一些谷歌搜索,发现了有关该问题的以下链接: SignalR 中的 HTTPContext.Current.Session 为 null...使用 SignalR 时需要替代会话状态 https://stackoverflow.com/questions/20881591/httpcontext-current-session-is-nul-in-signalr-need-alternate-to-session-state

进一步调查发现以下信息: http://www.asp.net/signalr/overview/signalr-20/troubleshooting-and-debugging/troubleshooting 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 的应用程序。 有什么解决方法吗?

这确实是设计使然,还是在 2.x 中使用 oWin::>Startup::Configuration(){app.MapSignalR();} 启动 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 托管模块。主机.SystemWeb)。

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

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

为什么在 ASP .Net MVC 应用程序中使用 SignalR 2.x 库时 HTTPContext.Current.Session 为 null? 的相关文章

  • 未找到信号器集线器 (403)

    是的 所以我看到了很多与此相关的问题 但建议的修复方案都对我不起作用 我有一个在 Visual Studio 2012 IIS Express 中运行的 MVC4 项目 使用 SignalR 向用户提供一些反馈 当我运行该项目时 我在 Ch
  • 如何修复信号器的 ChunkLoadError

    我在本地运行我的 nx 站点时遇到问题 任何使用 signalR 的联合应用程序都开始抛出 ChunkLoadError 我尝试过更改 signalR 的版本 重新加载 清除缓存并单独运行我的联合应用程序 结果总是一样的 Uncaught
  • 实体框架“意外的连接状态”异常

    经过三个小时的调试和搜索 我希望这里有人能找到答案 如果我连续快速调用以下函数 例如间隔 System InvalidOperationException 意外的连接状态 使用包装提供程序时 请确保在包装的 DbConnection 上实现
  • 有人可以提供带有显式起源列表的 CorsPolicy 实现吗?

    参考SignalR 集线器 API 指南 http www asp net signalr overview guide to the api hubs api guide javascript client crossdomain 配置注
  • WebRTC 和 Asp.Net Core

    我想将音频流从我的 Angular Web 应用程序录制到我的 Asp net Core Api 我认为 使用 SignalR 及其 websockets 是实现这一目标的好方法 通过这个打字稿代码 我可以获得一个 MediaStream
  • 如何在.net core项目中使用SignalR Core监听postgresql数据库?

    我正在开发 net core Web 应用程序 我想监听我的 PostgreSQL 数据库 如果桌面上有任何变化 我必须得到它 所以根据我的研究 我必须使用SignalR Core 我用 SignalR 做了一些示例应用程序 例如聊天应用程
  • SignalR .NET Core 驼峰命名法 JSON 合约解析器

    使用 NET Core RC2 让 SignalR 工作 但试图让它返回 JSON 中的驼峰命名法属性 对于我正在使用的 API services AddMvc AddJsonOptions o gt o SerializerSetting
  • 在 OWIN 托管的 SignalR 实现中接受 ASP.NET 表单身份验证 cookie?

    我有一个使用 OWIN 的自托管 SignalR 实例 我想实施授权 我的用户已经使用表单身份验证登录到 ASP NET MVC 应用程序 由于两个应用程序可在同一 URL 上使用 因此 cookie 将在两者之间共享 如何在自托管 Sig
  • 当我尝试创建 SignalR hubConnection 时,System.Net.Http.HttpRequestException 被捕获

    请帮助我 当我尝试建立 hubConnection 时 我不断收到 System Net Http HttpRequestException 我已经浏览了很多教程并下载了示例代码 但似乎没有任何效果 我也尝试过在线搜索配置计算机的方法 但很
  • 我在 signalr javascript 客户端中收到未定义的连接 ID

    根据我遇到的所有文档 我应该能够在连接启动后调用 connection hub id 这是我的代码 var handshake connection handshakeHub connection hub start done functi
  • SignalR 与 android(Java) 有问题

    我想在 android 应用程序和 net core 服务器项目之间进行实时通信 我在 stackoverflow 中尝试了一个问题 我跟着这个one https stackoverflow com questions 32573823 h
  • C# SignalR 异常 - 连接在收到调用结果之前开始重新连接

    我正在开发 2 个应用程序 第一个是 C 控制台应用程序 另一个是 Asp net Web 应用程序 我正在使用 SignalR 连接两者 这是我的 C 控制台应用程序 客户端 public class RoboHub public sta
  • 服务器到 Phonegap 推送:SignalR 与 Azure 通知中心

    好吧 我在继续开发 Phonegap 应用程序时陷入了两难境地 对于实时事件通知 我应该使用 Azure 通知中心还是 SignalR 据我了解 SignalR 通过使用 Web Sockets 非常适合实时 Web 应用程序 而通知中心可
  • SignalR 的浏览器兼容性如何?

    我在网上找到的最多的是 SignalR FAQ 其中指出 SignalR 在 IE6 7 中不起作用 但是 出于法律原因 我需要向客户提供受支持的浏览器列表 SignalR 有这样的经过测试的浏览器列表吗 Thanks 看起来微软已经发布了
  • Signalr - 发送消息的重写方法

    我有一个实施PersistentConnectionSignalr 中的类 对于我们的网站 我需要能够广播消息 然后让每个连接确定该特定消息是否与该特定用户相关 然后再将其通过管道发送到浏览器 像这样的事情 public class MyC
  • SignalR 1.01 中不需要 MapHub?

    我正在遵循 Signalr Wiki 中的集线器快速入门指南 我在 Global asax Application Start 行 RouteTable Routes MapHubs 上收到错误 名为 signalr hubs 的路由已在路
  • 使用signalR将聊天对话存储在sql数据库中

    我正在开发一个类库 其中包含适用于这些场景的通用方法 实时支持聊天 一对一私人文本聊天 与许多管理员和访客 拥有许多用户的房间 您可以在其中发送广播和私人消息 上面这两个功能已经实现 现在我的应用程序需要保存消息 我的问题是 在 SQL 数
  • SignalR - IE 中的 Forever Frame 在闲置几分钟后停止工作

    我在 IE9 中使用 SignalR 不幸的是 它必须降级为使用永久帧连接 我花了一些时间使用 IE 中的开发人员工具来研究这个问题 我可以看到回调加载到动态插入的 IFrame 中 并且它们调用 SignalR 插件中的接收函数 然而 在
  • SignalR 在一台计算机上工作,但在其他计算机上工作

    我们有一个托管 SignalR 的 Windows 服务 相同的代码在不同的机器上运行 会得到不同的结果 如果我在笔记本电脑上访问此链接 它会起作用 https localhost signalr negotiate 回复 Url sign
  • SignalR 似乎正在减慢我的 MVC/Azure 应用程序的启动速度

    我有一个 MVC 应用程序在 Windows Azure 上的 WebRole 上的 NET 4 5 下运行 使用 SignalR 1 0 alpha2 并使用 ServiceBus 底板 在我的 App Start 文件夹中 我有 Reg

随机推荐