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

Xamarin Forms无法连接本地ASP.NET Core Web API,报Network subsystem is down错误

解决Xamarin Forms连接本地ASP.NET Core API的问题

针对你遇到的System.Net.Http.HttpRequestException: 'Network subsystem is down'错误,结合之前的SSL握手问题,按以下步骤排查:

1. 替换localhost为开发机的局域网IP

模拟器或真机的localhost指向设备自身,而非你的开发电脑。你需要:

  • 找到开发机的局域网IP:Windows执行ipconfig,Mac/Linux执行ifconfig或ip addr,取以太网/Wi-Fi的IPv4地址(比如192.168.1.100)。
  • 将API地址改为https://你的局域网IP:57347/,确保代码中的ApiUrl变量使用这个地址。

2. 确保ASP.NET Core API允许局域网访问

默认情况下,本地运行的API可能只绑定到localhost,导致设备无法访问。修改API的启动配置:

  • 在Program.cs中添加绑定地址配置:
builder.WebHost.UseUrls("https://0.0.0.0:57347", "http://0.0.0.0:57347");

0.0.0.0表示监听所有可用网络接口,这样局域网内的设备就能访问API了。

3. 配置设备的网络权限

Android端

  • 在AndroidManifest.xml中添加网络权限:
<uses-permission android:name="android.permission.INTERNET" />
  • 若使用HTTP测试(暂时跳过SSL问题),Android 9及以上需要允许明文流量,在application标签中添加:
android:usesCleartextTraffic="true"

iOS端

  • 在Info.plist中添加App Transport Security例外(仅测试用,上线需调整):
<key>NSAppTransportSecurity</key>
<dict>
    <key>NSAllowsArbitraryLoads</key>
    <true/>
</dict>

4. 完善SSL证书处理(可选,若坚持用HTTPS)

虽然你已经添加了证书验证回调,但仍可能存在设备不信任开发证书的问题:

  • 导出开发机的ASP.NET Core SSL证书:证书通常位于C:\Users\你的用户名\AppData\Roaming\ASP.NET\Https目录,找到对应API的.pfx文件,导出为可安装的证书格式。
  • 将证书安装到模拟器或真机:Android可通过设置-安全-安装证书;iOS可通过Safari打开证书文件进行安装,并在设置中信任该证书。

临时排查建议

先改用HTTP协议测试API连接,排除SSL问题后再切换回HTTPS,这样能快速定位是网络连通性问题还是SSL证书问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.23 20:47:24