响应中缺少标头“Sec-WebSocket-Protocol”

本文关键字:Sec-WebSocket-Protocol 响应 | 更新日期: 2023-09-27 18:31:39

我正在创建一个客户端-服务器应用程序,该应用程序允许通过websockets推送通知,并遵循了本指南:http://msdn.microsoft.com/en-us/library/hh977020(v=vs.110).aspx。

它在本地主机中运行良好,但是当我在允许 websockets 的站点上将服务发布到 Azure 时,我们得到以下异常:mscorlib 中发生了类型为"System.ServiceModel.CommunicationException"的未处理异常.dll其他信息:网络套接字错误和内部例外:未处理的异常:System.ServiceModel.CommunicationException:发生 WebSocket 错误。 ---> System.Net.WebSockets.WebSocketException: WebSocket 升级请求失败。响应中缺少标头"Sec-WebSocket-Protocol"。

我想我需要在某处设置"Sec-WebSocket-Protocol"?我尝试将客户端端点更改为"wss://"而不是"ws://",但随后它告诉我"http 是预期的"。

响应中缺少标头“Sec-WebSocket-Protocol”

是否要部署到 Azure 网站?如果是这样,是否如本文开头 http://azure.microsoft.com/blog/2013/11/14/introduction-to-websockets-on-windows-azure-web-sites/所述在管理门户上启用了 WebSocket?

解决此问题的方法是不要在客户端和服务器端同时指定 websocket 子协议。