【发布时间】:2021-06-13 13:26:46
【问题描述】:
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();
});
}
在 localhost 上运行时,我可以访问所有端点。当我发布时,所有端点都返回 404。
为了测试我发布到正确的位置,我添加了一个显示在浏览器中的端点
public IActionResult Index()
{
return Content("Users Index");
}
当我浏览到 https://subweb.mainweb/users/api/users/index时,我看到浏览器中返回了 Users Index,但所有其他端点都返回 404。
控制器被装饰
[Route("api/Users/[action]")]
public class UsersController : ControllerBase
所有其他端点都被修饰,例如
[HttpGet]
[ActionName(nameof(IsRegisteredUser))]
public IActionResult IsRegisteredUser()
但我不明白这会对本地运行和服务器上的运行产生什么影响。
怎么可能所有端点都在 localhost 中可用,但发布时只有测试端点?我从哪里开始看?
【问题讨论】:
-
请仔细检查您输入的请求网址,它可能看起来像
https://subweb.mainweb/users/api/users/IsRegisteredUser,请不要错过/api/users/[action]之前的“users”。此外,请检查是否有任何重写规则应用于您服务器上的站点/应用程序。 -
@Fei Han 你有鹰眼!这是一个失踪的用户。请提出作为答案,以便我接受。
-
嗨@Vague,很高兴听到它确实有助于解决问题。我已将其发布为答案,希望它可以帮助其他社区成员快速解决类似问题。
标签: asp.net-core-webapi asp.net-mvc-routing asp.net-core-3.1 asp.net-core-routing