我最近开始在ASP.Net MVC 3应用程序中使用Signal R库。我能够使用Signal R将消息发送给客户端。但我注意到,如果我从另一个浏览器登录到应用程序,我得到以下错误 -signalr InvalidOperationException
异常类型:InvalidOperationException 异常消息:无法识别的用户身份。在活动的SignalR连接期间,用户身份不能更改。
服务器堆栈跟踪: 在Microsoft.AspNet.SignalR.PersistentConnection.GetConnectionId(HostContext上下文,字符串connectionToken) 在Microsoft.AspNet.SignalR.PersistentConnection.ProcessRequest(HostContext上下文) 在Microsoft.AspNet.SignalR.Owin .CallHandler.Invoke(IDictionary的2 environment) at Microsoft.AspNet.SignalR.Owin.Handlers.HubDispatcherHandler.Invoke(IDictionary
2环境) 在Microsoft.Owin.Host.SystemWeb.OwinCallContext.Execute() 在Microsoft.Owin.Host.SystemWeb.OwinHttpHandler.BeginProcessRequest(HttpContextBase HttpContext的,AsyncCallback的回调,而额外对象)
而且在某些情况下,我开始反复出现这个错误。事件日志在几分钟内就会完成。 我重写了我的集线器类中的OnConnect,OnDisconnect函数,并从Java脚本启动了集线器连接。
有关解决此问题的最佳方法的任何建议,以便在旧窗口中重新建立连接,但使用新身份? – chrisb 2013-08-23 05:07:12
用户身份更改后,您将手动停止并重新启动信号连接。 – halter73 2013-08-27 18:38:15