尝试在 IIS 8 Express 上使用带有
NetHttpBinding
的 WCF 时,当客户端尝试连接时,客户端会抛出以下 WebSocketException
:
WebSocket 升级请求失败。收到响应状态代码“200(正常)”,预期:“101(SwitchingProtocols)”。
谷歌搜索没有帮助。
导致此错误的原因可能是什么?
这意味着 HTTP 服务器不支持该 URL 上的 WebSocket。 在 WebSocket 协商期间,标准 HTTP 1.1
GET
请求会发送到服务器,并带有特殊的 Upgrade: websocket
标头,让服务器知道客户端希望连接使用 WebSocket 而不是 HTTP。 如果服务器支持 WebSocket,并且请求标头有效,则服务器需要发送 101
回复,让客户端知道服务器在连接期间将连接切换到 WebSocket。 除 3xx 重定向之外的任何其他回复都意味着服务器无法识别或允许该 URL 上的 Upgrade
请求。
您使用Nginx后端服务器吗?