HTTP POST 方法在 WebApi 上被视为 GET

HTTP POST method treated like GET on WebApi

我一直在创建一个 WebApi 控制器,我正在尝试使用 HttpPost 请求提交新用户进行注册。这在我的本地主机上运行良好,但是当我将它发布到 Azure 时,我收到一个 405 方法不允许错误消息:"The requested resource does not support http method 'GET'".

我用postman查看动作,所以用generate code查看请求,如下:

POST /api/account/register/student HTTP/1.1
Host: www.l3cture.com
Content-Type: application/json
Cache-Control: no-cache
Postman-Token: 27c1b2ab-96ad-4a99-b271-4030402768e7

所以我可以清楚地看到请求是一个POST。 以下是控制器操作代码及其属性(我目前已经对其进行了简化,因此没有模型被 posted,并且会发生相同的行为)

[HttpPost]
[Route("register/student")]
[AllowAnonymous]
public async Task<IHttpActionResult> PostStudent(/*RegisterStudent model*/)
{
    //Implementation of register
    return Ok();
}

我检查了属性的命名空间,它是System.Web.Http,所以它没有与 MVC 命名空间混淆。

有趣的是,当我将方法更改为 HttpGet 并使用 postman POST 时,我收到状态 200。这几乎就像 HttpPost 请求都被我的控制器将其视为 HttpGet。

我在其他地方使用过 HttpPut 和 HttpDelete,它们都工作正常。

我不确定如何解决这个问题,想知道是否有人有任何想法? 如果我需要 post 更多代码进行说明,请告诉我。

提前致谢

原来我使用的是 Http,而不是 Https。