我在Windows Server 2012上使用带有IIS8的SignalR v2.0, 我通过以下文章在服务器上启用了WebSockets, http://www.iis.net/learn/get-started/whats-new-in-iis-8/iis-80-websocket-protocol-support
但是signalR首先尝试使用websockets,然后将传输更改为serverSentEvents
谈判回复为TryWebSockets=True
与websockets连接的响应头是
我所有的解决方案项目都在使用.NET4.5
我还在事件查看器中看到以下消息(不确定它是否相关)
异常信息: 异常类型:InvalidOperationException 异常消息:无法识别的用户身份。在活动的SignalR连接期间,用户身份不能更改。在 Microsoft.AspNet.SignalR.PersistentConnection.GetConnectionId(HostContext context,String connectionToken)at Microsoft.AspNet.SignalR.PersistentConnection.ProcessRequest(HostContext 上下文) Microsoft.AspNet.SignalR.Hubs.HubDispatcher.ProcessRequest(HostContext 上下文) Microsoft.AspNet.SignalR.PersistentConnection.ProcessRequest(IDictionary`2 环境) Microsoft.AspNet.SignalR.Owin.Middleware.HubDispatcherMiddleware.Invoke(IOwinContext 上下文) Microsoft.Owin.Mapping.MapMiddleware.d__0.MoveNext() ---从抛出异常的先前位置开始的堆栈跟踪结束--- at Microsoft.Owin.Host.SystemWeb.IntegratedPipeline.StageAsyncResult.End(IAsyncResult的 一只老鼠 Microsoft.Owin.Host.SystemWeb.IntegratedPipeline.IntegratedPipelineContext.EndFinalWork(IAsyncResult的 一只老鼠 System.Web.HttpApplication.AsyncEventExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute() 在System.Web.HttpApplication.ExecuteStep(IExecutionStep步骤, 布尔和放大器; completedSynchronously)
出了什么问题?
答案 0 :(得分:0)
您无法在活动连接期间更改用户的身份。这意味着你可能正在做一些事情,比如登录用户而不先停止连接。