Visual Studio Dev Tunnels 是否支持 SignalR 连接?
Visual Studio Dev Tunnels完全支持SignalR,你遇到的隧道地址无法连接SignalR Hub的问题,通常是配置或设置环节的疏漏,而非功能本身不支持。以下是具体的排查和解决方向:
确认隧道的WebSocket转发支持
SignalR优先使用WebSocket传输,Dev Tunnels默认启用WebSocket转发,但可在Visual Studio的隧道管理界面验证该选项是否开启,确保WebSocket流量能正常通过隧道转发。核对客户端连接地址
确保客户端使用的隧道地址格式正确:协议为HTTPS,路径与本地一致。比如你的本地地址是http://localhost:5000/myhub,对应的隧道地址应为https://3jslj4kx-5000.uks1.devtunnels.ms/myhub,注意不要遗漏/myhub路径。检查服务器端CORS配置
若客户端从外部域名访问隧道地址,需在服务器CORS策略中添加允许隧道域名https://3jslj4kx-5000.uks1.devtunnels.ms。以ASP.NET Core为例,要确保CORS规则包含该域名,同时允许SignalR所需的HTTP方法、头信息及凭据(若需要)。验证端口映射准确性
确认Dev Tunnel映射的端口(此处为5000)与SignalR服务器监听的端口完全一致,避免端口映射错误导致连接失败。检查SignalR路由配置
服务器端需正确配置Hub路由,比如在ASP.NET Core的Program.cs中,确保存在如下映射代码:app.MapHub<MyHub>("/myhub");保证路由路径
/myhub与客户端请求的路径匹配。查看日志定位问题
在Visual Studio的Dev Tunnels面板查看隧道连接日志,同时检查服务器端的请求日志,排查是否存在握手失败、请求拦截等具体错误信息,辅助定位问题根源。
内容的提问来源于stack exchange,提问作者Paul Stanley

