升级asp.net应用程序以使用启用了WebSocket协议的SignalR时出现问题。事先,只使用SignalR,我就可以在启用websocket协议之前设置和添加响应cookie。我现在注意到在使用来自HttpContext的HttpResponse和来自GetHttpContext的HttpResponseBase进行调试时,我要么得到了
在此上下文中无法获得响应
或
引发了System.Web.HttpException类型的异常
Context.Request.GetHttpContext().Response
HttpContext.Current.Response.Cookies
有趣的是,上下文的请求仍然存在,并没有给我任何问题。此外,这发生在SignalR HUB类中。任何帮助将不胜感激。
答案 0 :(得分:0)
原因是SignalR的底层技术与MVC不同 - 没有设置cookie的能力(cookie在HTTP响应中设置,但在使用Web套接字时没有这样的东西。)
所以,基本上你不能这样做。但是,您可以使用集线器的上下文读取cookie(无论如何,在websocket连接初始化时的cookie ......)。