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

.NET 8 ASP.NET API控制器无法接收请求求助

问题排查方案

1. 修复环境判断逻辑错误

你的Program.cs里的环境判断逻辑完全写反了,当前代码会在非开发环境启用开发者异常页,开发环境反而走通用错误处理,导致调试时无法看到详细错误信息:

// 原错误代码
if (!app.Environment.IsDevelopment())
{
    app.UseDeveloperExceptionPage();
    app.UseExceptionHandler("/error");
}

修正为:

if (app.Environment.IsDevelopment())
{
    app.UseDeveloperExceptionPage();
}
else
{
    app.UseExceptionHandler("/error");
}

2. 解决HTTPS重定向与监听端口的冲突

你配置了app.UseHttpsRedirection()强制HTTP请求转HTTPS,但应用仅监听http://*:5879(无HTTPS端口配置),这会导致curl的HTTP请求被重定向后无响应。

两种解决方式:

  • 开发环境临时移除app.UseHttpsRedirection();
  • 同时添加HTTPS端口监听(需配置开发证书,可通过dotnet dev-certs https生成):
    app.Urls.Add("https://*:5880");
    

3. 确认curl请求URL的正确性

控制器路由为[Route("api/[controller]")],接口路由为[HttpGet("listthemall")],完整请求URL需匹配:

curl http://localhost:5879/api/Intern/listthemall

注意:路由会自动去掉控制器类名末尾的Controller,因此是api/Intern而非api/InternController。

4. 修正重复的日志配置

Program.cs中重复执行了日志清空与添加操作,会导致日志输出异常,保留一份即可:

// 保留这段配置,删除重复的相同代码
builder.Logging.ClearProviders();
builder.Logging.AddConsole();
builder.Logging.SetMinimumLevel(LogLevel.Debug);

5. 调整端口绑定顺序

当前端口绑定代码放在app.Run()前,可能被默认配置覆盖,建议移到builder.Build()之前:

// 在builder.Build()前添加
builder.WebHost.UseUrls("http://*:5879");
var app = builder.Build();

启动后检查控制台输出,确认是否显示Now listening on: http://[::]:5879,确保端口监听生效。

6. 验证本地端口连通性

用PowerShell测试端口是否正常开放:

Test-NetConnection localhost -Port 5879

如果返回TcpTestSucceeded : True说明端口正常,否则检查应用是否真的启动,或防火墙入站规则是否允许5879端口的本地连接。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.19 04:17:43