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

.NET Core 3.1调用API遇目标机器主动拒绝连接问题求助

问题排查与解决

错误信息

处理请求时发生未处理的异常。
SocketException: No connection could be made because the target machine actively refused it.
System.Net.Http.ConnectHelper.ConnectAsync(string host, int port, CancellationToken cancellationToken)

核心问题分析

从代码和场景来看,主要存在以下关键问题:

1. API端点完全不匹配

Web应用调用的是PostAsync("teams", ...),但你提供的API代码是处理Game的Post接口:

[HttpPost("Post")]
public virtual ActionResult<GameDTO> Post(GameDTO gameDTO)

该接口路由为/Post,接收参数是GameDTO,和Web应用要实现的"添加Team"需求完全不匹配——API中根本没有对应/teams的Post端点。

2. BaseUri配置可能错误

Web应用中_baseUri的值如果未指向API实际运行的IIS Express地址(比如端口错误、协议不匹配,比如用http但API是https),会直接导致连接被拒绝。

具体解决方案

步骤1:添加正确的Team API端点

在API项目中新增处理Team新增的接口,确保路由和参数与Web应用调用逻辑匹配:

[HttpPost("teams")]
public ActionResult<TeamDTO> AddTeam(TeamDTO teamDTO)
{
    var team = new Team { Name = teamDTO.Name };
    team.Id = Repository.Insert(team);
    teamDTO.Id = team.Id;
    return Ok(teamDTO);
}

步骤2:验证并修正BaseUri配置

  • 打开API项目属性→调试,查看"应用URL"(示例:https://localhost:44356)
  • 在Web应用配置文件(如appsettings.json)中,确保_baseUri与上述地址完全一致,示例:
    {
      "ApiSettings": {
        "BaseUri": "https://localhost:44356"
      }
    }
    

步骤3:确认API端点可用性

  • 启动API后,用Postman直接发送Post请求到https://localhost:<你的API端口>/teams,验证接口是否正常响应
  • 确保API未被防火墙或杀毒软件拦截,IIS Express正常监听指定端口

步骤4:检查IIS Express端口占用

如果API启动后端口与预期不符,右键API项目→属性→调试,修改"应用URL"的端口,并同步更新Web应用的BaseUri配置

内容的提问来源于stack exchange,提问作者wayne.blackmon

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.16 03:50:11