跨设备连接ASP.NET Core 6 WEB API时出现ERR_CONNECTION_REFUSED错误求助
解决跨设备访问ASP.NET Core 6 Web API时的ERR_CONNECTION_REFUSED问题
一、先排查服务端监听配置(最常见原因)
ASP.NET Core 默认仅监听 localhost,导致只有本机能访问。必须配置为监听所有网卡:
- 方法1:修改
Program.cs,添加UseUrls指定监听地址:
var builder = WebApplication.CreateBuilder(args); builder.WebHost.UseUrls("https://0.0.0.0:7214", "http://0.0.0.0:5000"); // 按需保留HTTP/HTTPS // 其他配置... var app = builder.Build();
- 方法2:在
appsettings.json中添加Urls配置:
{ "Urls": "https://0.0.0.0:7214;http://0.0.0.0:5000" }
配置后重启服务端,再用客户端测试。
二、学校网络的限制排查
1. 确认IP类型
如果 140.124.45.39 是学校内网IP,只有同校内网的设备才能访问;如果是公网IP,学校大概率封禁了7214端口。
2. 端口连通性测试
- 在服务端机器执行PowerShell命令:
Test-NetConnection -ComputerName 140.124.45.39 -Port 7214,确认本地端口正常监听。 - 找一台同校内网的设备执行同样命令,如果不通,说明服务端监听或本地防火墙仍有问题;如果通但外网设备访问失败,说明学校未做端口转发或封禁了端口。
3. 临时验证方案
用内网穿透工具映射7214端口,生成公网访问地址,测试跨设备能否访问,快速排除网络层面问题。
三、HTTPS证书信任问题验证
部分情况下,客户端不信任服务端证书会表现为连接拒绝:
- 临时配置服务端启用HTTP监听(参考第一步的端口配置),用
http://140.124.45.39:5000/api/Email测试。 - 如果HTTP能正常访问,说明是HTTPS证书问题,需要将服务端证书导入客户端机器的「受信任根证书颁发机构」存储。
四、其他补充验证
- 防火墙:确认服务端机器的Windows防火墙完全关闭(包括域、专用、公用网络),学校网络防火墙不受你控制,这一步仅排除本地防火墙干扰。
- CORS:连接拒绝和CORS无关,CORS是请求到达服务端后的浏览器端限制,无需在此问题上浪费时间。
- 服务端状态:确认服务端进程正常运行,本地用
https://localhost:7214/api/Email测试API是否能正常响应。
内容的提问来源于stack exchange,提问作者陳芸萱
相关产品推荐
相关产品推荐

