为什么ASP.NET页面中Session -object 上的属性SessionID在请求之间发生变化?
我有一个这样的页面:
...
<div>
SessionID: <%= SessionID %>
</div>
...
Run Code Online (Sandbox Code Playgroud)
每次我点击F5时输出都会不断变化,与浏览器无关.
当我尝试HttpContext从HUB 访问当前会话时它返回null.
我尝试使用界面,IRequiresSession但它没有用.有人能帮我吗?
我们有一个使用SignalR作为其通知机制的Web应用程序.问题是当我们使用IE浏览我们的Web应用程序时,SignalR使用Long Polling作为其传输类型,因此将请求发送回我们的Web服务器,因此Session永远不会过期,无论多长时间浏览器空闲.
我们在想,也许我们可以在Global.asax中捕获请求并查看它们是否来自SingalR并将会话超时设置为剩余时间(我不认为这是一个简单的解决方案).
我们缺少其他任何解决方案吗?
想象一下,使用SignalR的两个浏览器客户端之间有一个聊天Web应用程序.一个客户做出意外F5命中的最佳方法是什么?
这里描述了使用cookie和自定义SignalR IConnectionIdFactory的策略.但该文章的作者说"SignalR团队不推荐这一行动".那么推荐的架构是什么?