繁体   English   中英

与SignalR类(集线器)共享静态类

[英]Sharing a static class with SignalR classes (Hubs)

我正在使用登录表单创建一个网站。 当用户登录时,用户的信息已保存到HttpContext会话中,这是一个好主意。

现在,我添加了一个signalR集线器类(稍后将添加多个),并且我了解到我们无法访问HttpContext会话,因此我无法取回用户的信息。

我想也许我可以自己动手做一个静态的课程。 每个会话都有一个ID,我们可以从HttpContext会话和Hub Context中获得该ID。

  1. 在HttpContext.Current.Session中,它是SessionID
  2. 在Hub类中,它是Context.Request.Cookies [“ ASP.NET_SessionId”]

现在的想法是,将代表数据的会话存储在字典中。

问题:

当用户登录并浏览网站时,静态类的效果很好,但是在Hub类(signalR服务器)中,静态类为空。这就像该类的新“实例”一样,这对我来说很奇怪。

笔记

我所有的类都在App_Code中,甚至在Hub类中。 除保留为CONTENT的Hub类(设置为COMPILE时,服务器无法启动)外,所有这些类均处于COMPILE模式。

有人可以向我澄清吗? 也许我做错了什么,或者它的编译/内容破坏了这个想法。 谢谢 !

不知何故,从App_Code文件夹中删除了Hub类,从而解决了该问题。 现在,我可以毫无问题地访问静态类了。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM