求助: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
相关产品推荐
相关产品推荐

