You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

SignalR聊天应用DotNet客户端连接失败问题求助

SignalR DotNet客户端连接异常排查方案

核心问题定位

浏览器能连接wss://localhost:7137/chatHub,但DotNet客户端报错连接localhost:7131被拒绝,端口不匹配是最直接的原因——客户端配置的连接端口和服务器实际运行端口不一致。

具体排查步骤

1. 修正DotNet客户端的连接地址

检查客户端代码中HubConnection的初始化代码,确保端口与服务器实际运行的7137一致:

var connection = new HubConnectionBuilder()
    .WithUrl("https://localhost:7137/chatHub") // 将此处的7131替换为7137
    .Build();

2. 确认服务器的运行端口

打开服务器项目的Properties/launchSettings.json,查看applicationUrl字段,确认HTTPS端口为7137:

"applicationUrl": "https://localhost:7137;http://localhost:5137"

若服务器通过命令行启动,检查启动时的端口参数是否正确。

3. 排查端口占用或防火墙拦截(次要)

若端口配置正确仍报错,执行以下操作:

  • 用命令行检查7131端口是否被其他程序占用:
    netstat -ano | findstr :7131
    
    若有结果,结束对应进程或更换客户端端口。
  • 临时关闭本地防火墙,测试是否能正常连接(测试后恢复防火墙)。

4. 验证Hub路由与客户端路径匹配

确保服务器端正确映射了ChatHub:

// Program.cs 中
app.MapHub<ChatHub>("/chatHub");

客户端的连接路径必须和此处的/chatHub完全一致,不能有拼写错误。

5. 处理HTTPS证书信任问题(开发环境)

若服务器使用HTTPS,DotNet客户端可能因不信任开发证书导致连接失败,可在客户端初始化时临时跳过证书验证(仅开发环境使用):

var connection = new HubConnectionBuilder()
    .WithUrl("https://localhost:7137/chatHub", options =>
    {
        options.HttpMessageHandlerFactory = _ => new HttpClientHandler
        {
            ServerCertificateCustomValidationCallback = HttpClientHandler.DangerousAcceptAnyServerCertificateValidator
        };
    })
    .Build();

内容的提问来源于stack exchange,提问作者Abdullah Khan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.26 02:15:39