取消

c++连接IIS部署的SignalR失败

本地vs调试没有问题包括iis express,部署到服务器IIS上C++客户端就连接不上,js客户端连接没问题


问题

本地vs调试没有问题包括iis express,部署到服务器IIS上就连接不上,js客户端连接没问题,只有C++客户端连不上。 vs版本:vs2019 IIS系统:win10

解决

在控制面板-程序-启用或关闭Windows功能中安装WebSocket功能 安装WebSocket功能

原因

因为c++客户端采用WebSockets连接,iis未启用WebSockets功能。js客户端能连接是因为js客户端采用了三种连接方式WebSockets、Server-Sent Events、长轮询,如果WebSocket不可用时可以自动降级,而c++只支持WebSocket,失败就连不上了。


参考资料

本文会经常更新,请阅读原文: https://dashenxian.github.io/post/c++%E8%BF%9E%E6%8E%A5IIS%E9%83%A8%E7%BD%B2%E7%9A%84SignalR%E5%A4%B1%E8%B4%A5 ,以避免陈旧错误知识的误导,同时有更好的阅读体验。

知识共享许可协议

本作品采用 知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议 进行许可。欢迎转载、使用、重新发布,但务必保留文章署名 小神仙 (包含链接: https://dashenxian.github.io ),不得用于商业目的,基于本文修改后的作品务必以相同的许可发布。如有任何疑问,请 与我联系 (125880321@qq.com)

登录 GitHub 账号进行评论