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

ASP.NET Web API路由匹配失败及请求异常问题排查

ASP.NET Web API ConcertController 请求问题排查与解决

问题描述

  • 前端向 https://localhost:44490/api/Concert/GetPartyConcerts 发送请求时,报错 router.ts:11 No routes matched location "/api/Concert/GetPartyConcerts"
  • 使用Postman向 http://localhost:44490/api/Concert/GetPartyConcerts 发送请求时,返回 socket hang up 错误
  • 对应的ConcertController代码:
[ApiController]
public class ConcertController : ControllerBase
{
    private readonly IPartyConcertRepository _partyConcertRepository;

    public ConcertController(IPartyConcertRepository partyConcertRepository)
    {
        _partyConcertRepository = partyConcertRepository;
    }
    [HttpGet("GetPartyConcerts")]
    [ProducesResponseType(200, Type = typeof(IEnumerable<Party>))]
    public IActionResult GetPartyConcerts()
    {
        var partyConcerts = _partyConcertRepository.GetParties();

        if (!ModelState.IsValid)
            return BadRequest(ModelState);

        return Ok(partyConcerts);
    }
}

排查与解决步骤

1. 修正控制器路由配置

当前ConcertController缺少全局路由前缀,[ApiController]结合属性路由时需明确控制器的路由基准。在控制器类上添加[Route("api/[controller]")],确保路由与请求地址匹配:

[ApiController]
[Route("api/[controller]")] // 添加路由前缀
public class ConcertController : ControllerBase
{
    // 原有代码保持不变
}

添加后,GetPartyConcerts方法的完整路由为api/Concert/GetPartyConcerts,与请求地址完全对应。

2. 确认协议与端口匹配

  • 前端使用HTTPS协议请求44490端口,但Postman用了HTTP协议,需核对项目端口配置:
    打开项目的Properties/launchSettings.json,查看applicationUrl字段,示例配置如下:
    "applicationUrl": "https://localhost:44490;http://localhost:5001"
    
    Postman请求需使用对应协议的端口,若HTTPS端口为44490,请求地址应为https://localhost:44490/api/Concert/GetPartyConcerts。

3. 检查Repository实现

socket hang up一般是请求超时导致,需排查IPartyConcertRepository.GetParties()方法:

  • 确认是否存在数据库连接超时、死循环、长时间阻塞操作
  • 检查是否有未捕获的异常导致请求无法正常返回

4. 前端请求路由问题排查

前端报错No routes matched location,可能是前端框架(如React Router、Vue Router)将API请求识别为前端路由:

  • 确认前端请求是否正确指向后端API地址,而非前端路由路径
  • 若使用代理,检查代理配置是否将/api开头的请求转发到后端服务器

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.30 11:22:36