在Web套接字的上下文中,“WebSocket升级请求失败”异常意味着什么?

时间:2013-08-12 15:13:51

标签: wcf websocket iis-8

尝试在IIS 8 Express上使用带有NetHttpBinding的WCF时,客户端尝试连接时会在客户端抛出以下WebSocketException

  

WebSocket升级请求失败。收到响应状态代码'200(OK)',预期:'101(SwitchingProtocols)'。

Google Search没有帮助。

导致此错误的原因是什么?

1 个答案:

答案 0 :(得分:7)

这意味着HTTP服务器不支持该URL上的WebSockets。在WebSocket协商期间,标准HTTP 1.1 GET请求将使用特殊的Upgrade: websocket标头发送到服务器,以使服务器知道客户端希望连接使用WebSocket而不是HTTP。如果服务器支持WebSockets,并且请求标头有效,则服务器需要发送101回复,让客户端知道服务器在连接期间将连接切换到WebSocket。除3xx重定向之外的任何其他回复意味着服务器无法识别或允许该URL上的Upgrade请求。