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

.NET Core Minimal APIs无法连接React Native(Expo CLI)应用求助

解决.NET Core Minimal API与Expo React Native网络连接问题

核心排查方向:HTTPS证书信任问题

React Native/Expo 默认不信任自签名HTTPS证书,这是本地开发时最常见的触发原因——毕竟.NET Core默认会生成自签名证书用于HTTPS服务。

1. 临时切换HTTP(仅开发环境测试)

修改.NET项目的launchSettings.json,将applicationUrl改为纯HTTP配置:

"profiles": {
  "http": {
    "commandName": "Project",
    "dotnetRunMessages": true,
    "launchBrowser": true,
    "applicationUrl": "http://localhost:5000;http://你的局域网IP:5000",
    "environmentVariables": {
      "ASPNETCORE_ENVIRONMENT": "Development"
    }
  }
}

重启.NET后端后,让Expo应用改用HTTP地址发起请求。如果能正常连接,就坐实了HTTPS证书的问题。

2. 让Expo信任.NET的自签名证书

步骤1:导出.NET开发证书

打开管理员权限的命令提示符,执行:

dotnet dev-certs https -ep %USERPROFILE%\.aspnet\https\aspnetapp.pfx -p 自定义密码(比如123456)

步骤2:安装证书到设备

  • 模拟器:把导出的.pfx文件复制到模拟器存储,进入系统设置→安全→从存储安装证书,选择该文件完成安装。
  • 真机:通过邮箱/微信发送证书文件到手机,打开后按提示完成安装(需确认信任该证书)。

步骤3:开发环境临时跳过证书验证(仅开发用)

以axios请求为例,在代码中添加忽略配置:

import axios from 'axios';
import https from 'https';

const api = axios.create({
  baseURL: 'https://你的.NET后端局域网IP:5001',
  httpsAgent: new https.Agent({
    rejectUnauthorized: false
  })
});

注意:生产环境绝对不能使用此配置,必须替换为正规CA签发的证书。

3. 网络权限与防火墙检查

  • 确保.NET后端的HTTPS端口(默认5001)未被防火墙拦截,在Windows防火墙中添加允许该端口的入站规则。
  • 确认Expo应用拥有网络权限,检查app.json:
"android": {
  "permissions": ["INTERNET"]
}
  • 手机/模拟器必须和.NET后端处于同一局域网,请求地址要使用电脑的局域网IP,而非localhost(模拟器的localhost指向自身,不是开发电脑)。

4. 配置.NET跨域规则

React Native属于前端应用,需要.NET开启CORS支持:
在Program.cs中添加:

builder.Services.AddCors(options =>
{
    options.AddPolicy("AllowExpo",
        policy => policy.AllowAnyOrigin()
                        .AllowAnyMethod()
                        .AllowAnyHeader());
});

// 注意位置:放在app.UseRouting()之后,app.MapControllers()之前
app.UseCors("AllowExpo");

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.01 15:33:17