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

使用Xamarin对接SignalR时出现Connection Refused连接被拒问题求助

问题修复方案

1. 连接被拒绝核心原因

你当前填写的服务地址localhost在Xamarin运行的设备(模拟器/真机)中指向的是设备自身,而非运行ASP.NET Core服务的开发主机,这是该场景下最常见的错误。
按以下步骤修改配置:

  • 先查询你开发机的局域网IP(例如192.168.3.45),确保开发机和Xamarin运行设备处于同一局域网下,关闭开发机防火墙或者放行对应服务端口。
  • 修改launchSettings.json中FleetSocketServer配置的applicationUrl,将localhost替换为开发机局域网IP:
    "applicationUrl": "https://192.168.3.45:5001;http://192.168.3.45:5050"
    
    调试阶段优先选择FleetSocketServer(项目模式)启动服务,不要使用IIS Express,IIS Express默认禁止外部IP访问,配置成本更高。
  • Xamarin客户端代码中WithUrl的地址同步修改为开发机IP,调试阶段建议先用HTTP协议,避免自签证书信任问题:
    .WithUrl("http://192.168.3.45:5050/chat")
    
    如果使用安卓端,需要额外在AndroidManifest中添加明文网络访问权限,安卓9及以上默认禁止HTTP请求。

2. 消息接收逻辑错误(连接通后会遇到)

你客户端注册的消息监听方法名是ReceiveMessage,但服务端Hub中推送的方法名是Recieve,二者不匹配会导致收不到消息,修改任意一侧保持名称完全一致即可:

// 服务端修改为
await Clients.All.SendAsync("ReceiveMessage", message);

3. 验证步骤

修改完成后先在开发机浏览器访问服务地址http://你的开发机IP:5050/chat,如果服务正常运行会返回404或握手提示,确认服务可用后再启动Xamarin客户端调试。


内容的提问来源于stack exchange,提问作者Jaxon Poentis

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.06 17:42:00