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

求助:ASP.NET Core 8 Web API在Postman中返回404 Not Found状态码

ASP.NET Core 8 Web API 404 Not Found 排查与解决

以下是针对你遇到问题的具体排查步骤和解决方案:

1. 检查控制器的路由特性配置

  • 确保控制器类上同时标注[ApiController]和路由基址特性,比如:
    [ApiController]
    [Route("api/[controller]")]
    public class ProductsController : ControllerBase
    {
        // 方法代码
    }
    
    其中[Route("api/[controller]")]会自动将控制器名称(去掉Controller后缀)作为路由前缀,比如ProductsController对应的前缀是api/products。
  • 接口方法必须标注HTTP动词特性(如[HttpGet]、[HttpPost]),如果方法有自定义路由片段,要确保和请求URL匹配,比如方法标注[HttpGet("list")],则完整路由是api/products/list。

2. 验证Postman请求的准确性

  • 请求URL必须完全匹配控制器+方法的路由规则,注意端口号、协议(HTTP/HTTPS)要和项目启动配置一致。
  • 请求方法要和接口方法的HTTP动词特性对应,比如接口用[HttpGet],Postman必须选择GET请求,不能用POST或其他方法。

3. 确认项目启动的路由配置

  • 在Program.cs中,确保存在控制器路由映射代码:
    app.MapControllers();
    
    这行代码是框架发现并注册控制器路由的关键,缺失会导致所有控制器接口无法被访问。

4. 检查控制器和方法的访问权限

  • 控制器类必须是public修饰符,接口方法也必须是public,否则框架无法扫描到这些可访问的端点。

5. 示例正确实现

如果按照以下代码编写控制器,配合正确的Postman请求即可解决问题:

[ApiController]
[Route("api/[controller]")]
public class ProductsController : ControllerBase
{
    [HttpGet]
    public IActionResult GetAllProducts()
    {
        return Ok("List All Products");
    }
}

对应的Postman请求:

  • 请求方法:GET
  • 请求URL:https://localhost:<你的项目端口>/api/products

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.03 23:39:55