如何解决发布时无法命中 AspNetCore 3.1 MVC API 端点
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();
});
}
在本地主机上运行时,我可以访问所有端点。当我发布时,所有端点都返回 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()
但我看不出这对本地运行和在服务器上运行有何不同。
怎么可能所有端点都在本地主机中可用,但发布时只有测试端点?我从哪里开始看?
解决方法
当我浏览到 https://subweb.mainweb/users/api/users/indexI 时,看到浏览器中返回了用户索引,但所有其他端点都返回 404。
根据您上面的示例 URL,您似乎将 ASP.NET Core Web API 应用作为子应用(子应用)托管在服务器上的 /users
。
要访问端点,您应该确保在 URL 中包含子应用的路径库,否则会导致 404 - Not Found 错误。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。