2016-04-29 113 views
3

SignalR 3 RC1用户对ASP.NET 5 RC1SignalR的WebSocket握手:二段的WebSocket-Accept报头缺少

试图获得的WebSocket去时,遇到了以下错误。

使用Chrome 50.0.2661.87

页眉如下:

请求头:
日期:星期五,2016年4月29日13时51分54秒GMT
服务器:红隼
传输编码:分块
升级:WebSocket的
X-Content-Type的选项:nosniff
X供电,通过:ASP.NET

响应头:
接受编码:gzip,放气,SDCH
接受语言:EN-US,EN; Q = 0.8,FR,Q = 0.6
缓存控制:无缓存
连接:升级
饼干:... ASP.NET饼干
DNT:1
主持人:host.tld
来源:http://host.tld
杂注:无缓存
二段的WebSocket的扩展:permessage,放气; client_max_window_bits
二段的WebSocket密钥:liIKiClt7Z057EwteJYJXQ ==
二段的WebSocket-版本:13
升级:WebSocket的
的User-Agent:Mozilla的/ 5.0(Windows NT的6.1; WOW64)为AppleWebKit/537.36(KHTML,例如Gecko )的Chrome/Safari浏览器50.0.2661.87/537.36

使用Microsoft.AspNet.WebSockets.Server 1.0.0-RC1

服务器设置: 的Windows Server 2012 R2 IIS 8.5

我能做些什么来解决问题?

+1

搜索者的利益,这个线程有适合我的工作https://github.com/SignalR/SignalR/issues/3691一个答案。转到Windows功能>万维网服务>应用程序开发功能并启用Websocket协议。 IIS重置并重新加载页面。 – HockeyJ

+1

是的,我在GitHub上回答了我自己的问题,但不是在这里hahahaha。谢谢哥们! – DOMZE

回答

7

由于曲棍球J评论,我已经在GitHub上回答了我的问题,但不是在这里。

要解决此问题,请转到Windows功能>万维网服务>应用程序开发功能并启用Websocket协议。 IIS重置并重新加载页面

https://github.com/SignalR/SignalR/issues/3691

+0

Windows功能> * Internet信息服务*>万维网服务>应用程序开发功能。对于Windows服务器,它有所不同:https://www.iis.net/learn/get-started/whats-new-in-iis-8/iis-80-websocket-protocol-support – ConductedClever

1

服务器的执行情况不好,但可能您可以通过在请求中包含Sec-WebSocket-Key HTTP标头来解决该问题。为了符合规范,还需要Sec-WebSocket-Version标头和Connection标头。详情请参阅RFC 6455

+0

这个实现是直接在SignalR中完成的,所以它是发送头文件的文件,而不是。我无法控制发送什么标题。我在他们的github上打开了一个问题,但我还没有收到他们的消息。 我相信这是我没有正确配置的东西,但是从我读的内容来看,情况并非如此,人们正在采取解决方法(使用PHP) – DOMZE