我有一个小型 .NET Core 测试程序,在 Proxmox 上的 Debian CT 中运行,地址为 192.168.1.200:5000。当我使用 Postman 测试 API 时,/test
端点可以正常工作。在同一台机器上以及同一网络中的其他机器上。但是当我/api/greet
从控制器测试时,我收到错误 http 404。知道为什么吗?
这里是成功的 /test 和不成功的 /api/greet:
/test 200 OK
/api/greet 404 Not Found
Program.cs
:
var builder = WebApplication.CreateBuilder(args);
builder.Services.AddControllers();
var app = builder.Build();
app.UseRouting();
app.UseEndpoints(endpoints =>
{
endpoints.MapControllers();
});
app.MapGet("/test", () => "Test route reached");
app.Run();
Controller.cs
:
namespace HelloWorldApi.Controllers
{
[ApiController]
[Route("api")]
public class HelloWorldController : ControllerBase
{
[HttpGet("greet")]
public IActionResult GetGreeting()
{
return Ok("Hello World");
}
}
}
我尝试了其他移植,删除了整个代码并重新编写,甚至使用了旧项目中的代码。即使我将 Console.WriteLine("test") 放入控制器的构造函数中,它也不会被打印,所以控制器没有初始化?
在 Program.cs 中你需要调用
然后
做:
另外,为了确保控制器端点正常工作,请添加如下路由属性: