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

.NET 8 Web API控制器调用404及证书验证问题求助

问题排查与解决方案

一、自定义控制器HTTP 404错误解决

1. 检查控制器的路由属性

确保你的控制器类上同时标注[ApiController]和路由属性,示例代码:

[ApiController]
[Route("api/[controller]")]
public class YourController : ControllerBase
{
    [HttpGet]
    public IActionResult Get()
    {
        return Ok("Hello from controller");
    }
}
  • [ApiController]:启用API控制器的核心特性,比如自动模型验证、路由规则推断
  • [Route("api/[controller]")]:定义控制器的基础路由,[controller]会自动替换为控制器类名(去掉末尾的Controller后缀)

2. 验证Program.cs中的服务与中间件配置

.NET 8的Minimal API模板默认不会自动启用控制器支持,必须手动添加以下配置:

var builder = WebApplication.CreateBuilder(args);

// 注册控制器服务,必须加这行
builder.Services.AddControllers();

// 原有Swagger配置保留
builder.Services.AddEndpointsApiExplorer();
builder.Services.AddSwaggerGen();

var app = builder.Build();

if (app.Environment.IsDevelopment())
{
    app.UseSwagger();
    app.UseSwaggerUI();
}

app.UseHttpsRedirection();

// 映射控制器路由,必须加这行,且顺序要在UseHttpsRedirection之后
app.MapControllers();

// 原有Minimal API端点保留
app.MapGet("/weatherforecast", () =>
{
    // ...原有代码
})
.WithName("GetWeatherForecast")
.WithOpenApi();

app.Run();

注意中间件顺序不能乱,app.MapControllers()要放在UseHttpsRedirection之后、app.Run()之前。

3. 检查Action方法的HTTP动词属性

控制器里的每个Action都要标注对应的HTTP动词属性,比如[HttpGet]、[HttpPost]、[HttpGet("{id}")]。如果没加,路由系统无法匹配请求的HTTP方法,会直接返回404。

二、Postman证书警告解决

1. 临时关闭SSL验证(开发环境快速解决)

打开Postman,进入设置->通用,找到“SSL certificate verification”选项,关闭即可。这个方法适合本地开发时快速跳过证书验证。

2. 导入开发证书到Postman(保持SSL验证开启)

如果需要维持SSL验证,可以把.NET开发证书导入Postman:

  1. 运行命令导出证书:dotnet dev-certs https -ep "$HOME/.aspnet/https/aspnetapp.pfx" -p 自定义密码
  2. 在Postman的设置->证书页面,点击“Add Certificate”,选择导出的pfx文件,输入刚才设置的密码,保存后即可解决警告。

三、额外检查点

  • 确认控制器类是public修饰的,且继承自ControllerBase
  • 启动项目后,对照Swagger显示的端点路径,确保Postman请求的路径完全一致(比如Swagger显示GET api/Your,请求路径就要是https://localhost:xxxx/api/Your)
  • 检查项目启动的端口,Postman请求的端口要和控制台输出的端口匹配

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.29 05:53:27