控制台应用调用localhost上的ASP.NET Core接口出现SSL连接错误如何解决
可行解决步骤
- 先验证API服务本身可用性
启动API项目后直接用浏览器访问https://localhost:5108的默认路由(如/weatherforecast),确认服务可以正常响应,排除API未启动成功、端口配置错误的问题。可打开API项目的launchSettings.json文件,检查applicationUrl字段是否正确配置了5108端口的http/https绑定。 - 排查端口占用与防火墙限制
打开命令行执行netstat -ano | findstr :5108,确认5108端口当前被API进程占用,无其他进程冲突。临时关闭系统防火墙后再次测试调用,排除本地请求被防火墙拦截的情况。 - 临时跳过证书校验定位问题
在控制台应用的请求逻辑中添加代码绕开SSL证书校验,测试是否可以正常请求:
如果跳过校验后请求正常,说明问题根源在证书信任配置,可继续执行后续证书重置操作。var httpClientHandler = new HttpClientHandler { ServerCertificateCustomValidationCallback = (_, _, _, _) => true }; var httpClient = new HttpClient(httpClientHandler); - 完全重置ASP.NET Core开发证书
打开命令行依次执行以下命令,彻底清理旧证书并生成新的信任证书:- 清理所有已存在的开发证书:
dotnet dev-certs https --clean - 生成新证书并添加到系统信任列表:
dotnet dev-certs https --trust
执行完成后重启Visual Studio和两个项目再测试调用。
- 清理所有已存在的开发证书:
- 检查CORS与代理配置
- 在API项目的
Program.cs中添加宽松的CORS策略测试,排除跨域配置拦截的可能:
builder.Services.AddCors(opt => { opt.AddPolicy("TestAllowAll", policy => { policy.AllowAnyOrigin().AllowAnyMethod().AllowAnyHeader(); }); }); // 在app.UseRouting()之后、app.UseAuthorization()之前添加 app.UseCors("TestAllowAll");- 关闭系统全局代理和Visual Studio代理配置,避免本地localhost请求被错误转发到代理服务器。
- 在API项目的
- 调整API绑定地址
把API的监听地址从localhost改为0.0.0.0,避免回环地址绑定限制导致的访问异常,修改launchSettings.json的applicationUrl为https://0.0.0.0:5108;http://0.0.0.0:5107(http端口可自行调整)。
内容的提问来源于stack exchange,提问作者Arianule
相关产品推荐
相关产品推荐

