发布时无法命中 AspNetCore 3.1 MVC API 端点

Cannot hit AspNetCore 3.1 MVC API endpoints when published

AspNetCore 3.1 MVC API。常规启动

public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
{
    if (env.IsDevelopment())
    {
        app.UseDeveloperExceptionPage();
    }

    app.UseHttpsRedirection();

    app.UseRouting();

    app.UseEndpoints(endpoints =>
    {
        endpoints.MapControllers();
    });
}

当 运行 在本地主机上时,我可以访问所有端点。当我发布时,所有端点 return 404.

为了测试我发布到正确的位置,我添加了一个显示在浏览器中的端点

public IActionResult Index()
{
    return Content("Users Index");
}

当我浏览到 https://subweb.mainweb/users/api/users/index 时,我在浏览器中看到 Users Index return,但所有其他端点 return 404。

控制器装饰

[Route("api/Users/[action]")]
public class UsersController : ControllerBase

所有其他端点都经过修饰,例如

[HttpGet]
[ActionName(nameof(IsRegisteredUser))]
public IActionResult IsRegisteredUser()

但我看不出这对 运行 本地和服务器有何影响。

怎么可能所有端点都在本地主机中可用,但发布时只有测试端点可用?我从哪里开始看?

When I browse to https://subweb.mainweb/users/api/users/indexI see Users Index returned in the browser, but all other endpoints return 404.

根据您上面的示例 URL,您似乎将 ASP.NET Core Web API 应用程序作为子应用程序(子应用程序)托管在 /users 在你的服务器上。

要访问端点,您应该确保在 URL 中包含子应用程序的路径库,否则会导致 404 - Not Found 错误。