我刚刚将MVC网络应用程序部署到我的Windows Server 2012.它安装了Windows 8和IIS v8。该应用程序使用SignalR,我想使用websockets,但它会出错。
在每个浏览器(chrome ff,ie)中,错误都是相同的:
"NetworkError: 500 Internal Server Error - https://domain.com/signalr/connect?transport=webSockets&connectionToken=wiiR333%2BkbKu0Ex2SPZLE9W9X6eAm5lBssbjXbqCvl0QpjAiGtHkn1xiIQHYGi3O4DDLIv7whTahVb8Ll5kfwjnrzaZaDYCApWj5aWm6d1cZzxH89K%2BouHziBH7dCt9I&connectionData=%5B%7B%22name%22%3A%22charthub%22%7D%5D&tid=8"
详细的错误消息是:
Exception information:
Exception type: InvalidOperationException
Exception message: Not a valid web socket request.
at Microsoft.AspNet.SignalR.Transports.WebSocketTransport.AcceptWebSocketRequest(Func`2 callback)
at Microsoft.AspNet.SignalR.PersistentConnection.ProcessRequest(HostContext context)
at Microsoft.AspNet.SignalR.Hubs.HubDispatcher.ProcessRequest(HostContext context)
at Microsoft.AspNet.SignalR.PersistentConnection.ProcessRequest(IDictionary`2 environment)
at Microsoft.Owin.Mapping.MapMiddleware.<Invoke>d__0.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
at Microsoft.Owin.Host.SystemWeb.IntegratedPipeline.IntegratedPipelineContext.EndFinalWork(IAsyncResult ar)
at System.Web.HttpApplication.AsyncEventExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute()
at System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously)
我在SignalR Jabbr聊天中询问了错误是什么,他们告诉我有什么东西阻止了连接。我查了一下,TCP端口80和端口443都在监听。
IIS信任级别为Full (internal)
,我们未使用负载平衡。 Websockets protocol
已安装。
可能出现什么问题?