ASP.NET Core Web API HTTP POST在Azure中返回404

Bja*_*e M 6 post azure asp.net-core-webapi

我有这个(简化的)ASP.NET Core Web API控制器.GET和POST操作都可以在我自己的机器上很好地工作.但是,部署到Azure只有GET操作才能正常工作.POST动作导致404.任何想法?

namespace Foo
{
  using System;
  using System.Collections.Generic;
  using Microsoft.AspNetCore.Mvc;

  [RequireHttps]
  [Produces("application/json")]
  [Area("Foo")]
  [Route("[area]/Api/[controller]")]
  public class BarController : Controller
  {
    [HttpGet]
    public IEnumerable<string> Get()
    {
      return new[] {"Hello", "World!"};
    }

    [HttpPost]
    public void Post([FromBody] InputModel model)
    {
    }

    public class InputModel
    {
      public int Foo { get; set; }
    }
  }
}
Run Code Online (Sandbox Code Playgroud)

它是一个针对完整.NET框架的ASP.NET Core MVC应用程序.它部署为Azure Web App.我已使用Postman在本地计算机和Azure中测试了这两个操作.

And*_*sev 2

在某些情况下,当控制器中发生错误时,ASP.NET core 似乎会返回 404,而不是更合适的 500。查看这篇文章:

ASP.NET Core 2.0 站点 POST 请求在 Azure 上导致 404

在答案中,这是由错误的数据库连接字符串引起的(这可能是您将应用程序发布到另一个环境时的情况),但也可能是其他原因。

不确定为什么它不抛出正常错误,也许它尝试重定向到自定义错误页面或类似的内容。

要检查此建议,请尝试从 POST 控制器中删除所有内容以隔离问题。如果它不返回 404,则意味着控制器中的某些内容引发了异常。