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

VS2019使用WebClient访问本地服务安卓端报Connection Refused

问题根因

两个报错指向同一个核心问题:Asp.Net Core 默认仅绑定localhost环回地址,不会监听局域网网卡IP的入站请求:

  • 开启防火墙时,请求被防火墙拦截无法到达应用端口,触发超时
  • 关闭防火墙时,网卡收到请求但无进程在对应IP的8080端口监听,直接返回连接拒绝
  • 安卓模拟器用10.0.2.2可正常访问,是因为模拟器内置了端口转发规则,会把该IP的请求直接转发到PC的localhost环回地址,绕开了局域网IP绑定限制,和实体机调试的网络路径完全不同。
修复步骤

1. 修改Asp.Net Core绑定地址

这一步是最核心的修复,操作如下:

  • 打开项目下Properties/launchSettings.json文件,找到自托管Profile(和项目同名的配置项,不要选IIS Express配置),将applicationUrl字段中的http://localhost:8080修改为http://0.0.0.0:8080,参考配置片段:
"profiles": {
  "你的项目名称": {
    "commandName": "Project",
    "dotnetRunMessages": true,
    "launchBrowser": false,
    "applicationUrl": "http://0.0.0.0:8080",
    "environmentVariables": {
      "ASPNETCORE_ENVIRONMENT": "Development"
    }
  }
}

0.0.0.0代表绑定本机所有网卡的IP,包括你有线网卡的局域网地址192.168.50.250,修改完成后重启应用,启动时控制台会输出Now listening on: http://0.0.0.0:8080就代表配置生效。注意不要用IIS Express启动,IIS Express默认也只绑定localhost。

2. 配置防火墙入站规则

不要直接关闭系统防火墙,容易触发额外的网络策略拦截,添加精准规则即可:

  • 打开Windows Defender防火墙高级设置,新建入站规则
  • 规则类型选择「端口」,协议选TCP,特定本地端口填8080
  • 操作选「允许连接」,配置文件至少勾选「专用」(家庭路由器下的网络默认属于专用网络)
  • 规则名自定义即可(比如AspNetCore_Dev_8080),保存生效

3. 连通性校验

在写App代码前先验证链路是否通:

  • 在PC命令行执行ipconfig,确认有线网卡的IPv4地址确实是192.168.50.250,避免DHCP自动分配IP导致地址变动
  • 确认手机和PC连的是同一个路由器的主WiFi,不要连访客WiFi(多数路由器访客WiFi默认开启AP隔离,禁止访问局域网设备)
  • 用手机自带浏览器直接访问http://192.168.50.250:8080/api/books,能正常返回接口内容再回到App调试

4. 安卓端冗余配置清理

你之前加的TLS1.2配置、证书回调都是HTTPS场景下的配置,当前用HTTP调试可以直接注释掉,避免部分安卓版本下协议不匹配引发额外问题。你已经配置的INTERNET、ACCESS_NETWORK_STATE权限足够满足HTTP请求需求,不需要额外加权限。
补充:WebClient类在新版.NET中已标记为过时,后续可以替换为HttpClient实现请求,但这不是当前连接失败的原因,链路打通后再调整即可。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.29 07:18:23