5

Я создавал контроллер WebApi, и я пытаюсь использовать запрос HttpPost для отправки нового пользователя для регистрации. Это отлично работает на моем локальном хосте, но когда я публикую его на Azure, я получаю 405-метод, который не допускает ошибки с сообщением: «Запрошенный ресурс не поддерживает метод http« GET ».HTTP POST метод, обработанный как GET на WebApi

Я использую почтальон, чтобы проверить действия, и поэтому я генерировать код, чтобы увидеть запрос, который выглядит следующим образом:

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. И следующее это код действия контроллера с его атрибутами (я в настоящее время упрощена так, что ни одна модель не отвечал, и то же самое происходит)

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

Я проверил пространство имен атрибутов и это System.Web.Http, поэтому его не путают с пространством имен MVC.

Интересно, что когда я меняю метод HttpGet и POST на него с помощью почтового менеджера, я получаю статус 200. Это почти так же, как и запросы HttpPost, которые обрабатываются моим контроллером как HttpGet.

Я использовал HttpPut и HttpDelete в других местах, и все они работают нормально.

Я не уверен, как решить эту проблему, и было интересно, есть ли у кого-нибудь идеи? Пожалуйста, дайте мне знать, если мне нужно опубликовать больше кода для уточнения.

Заранее спасибо

+1

Кажется, работать, когда я использую https вместо http. Это может быть закрыто –

+0

Вы передаете вашу модель в Body for Post? Подумайте, что в вашем параметре метода отсутствует атрибут FromBody. –

+0

Я пробовал [FromBody], и это не сработало. Хотя я просто попробовал это, указав https, и, похоже, он работает. Я, должно быть, был идиотом какое-то время –

ответ

10

Оказывается, я использовал HTTP, вместо Https.

+0

Если бы это было действительно все, что было с вашей проблемой, вы должны принять этот ответ (галочка слева), чтобы другие пользователи могли найти ваш вопрос, что это решение. –

+0

Да, извините, я не мог, когда я отправлял сообщение, нужно было ждать два дня. Спасибо, что напомнил мне –

+0

Не беспокойтесь! :) –