ASP.NET 5 + MVC 6 + Веб-контроллер API с глаголами PUT или PATCH возвращает ошибку 404
У меня есть базовый контроллер Web API, встроенный в MVC 6 (бета-версия 3) как часть нового проекта ASP.NET. Проблема, с которой я столкнулся, заключается в том, что она не принимает глаголы PUT или PATCH и возвращает ошибку 404 всякий раз, когда я пытаюсь получить доступ к URL-адресу с помощью этих методов.
Вот что я получил в качестве базового теста:
namespace Test.Controllers
{
[Route("api/test")]
public class TestController : Controller
{
[HttpGet]
public string TestGet()
{
return "Hello from GET!";
}
[HttpPost]
public string TestPost()
{
return "Hello from POST!";
}
[HttpDelete]
public string TestDelete()
{
return "Hello from DELETE!";
}
[HttpPut]
public string TestPut()
{
return "Hello from PUT!";
}
[HttpPatch]
public string TestPatch()
{
return "Hello from PATCH!";
}
}
}
Посещение http://localhost/api/test
с 'Почтальоном', чтобы проверить URL с каждым из глаголов (GET, POST, DELETE, PUT и PATCH), в свою очередь, отлично работает для GET, POST и DELETE, но выдает 404 с PUT и PATCH.
Редактировать: я помню, что был способ включить эти глаголы для MVC5 и ниже, который включал отключение WebDAV и добавление обработчиков для двух глаголов через web.config
, но нет такой вещи как web.config
в ASP.NET 5 я в полной растерянности относительно того, как это исправить. Я предполагаю, что это, вероятно, решено с помощью config.json
но все мои попытки найти это ничего не дали!
Предыдущий сайт, который я разработал в MVC5, не имеет этой проблемы, и, посмотрев на web.config
В этом файле, по-видимому, нет ничего, что отключало бы WebDAV (оно фактически удалено) или позволяло обрабатывать методы PUT/PATCH для URL без расширений. Поэтому я не думаю, что то, что я написал ранее, применимо.
Есть идеи?
Спасибо
1 ответ
Поддержка web.config удалена только из части приложения.NET и ASP.net. Если ваше приложение размещено в IIS, вам все равно нужен файл web.config, как и для веб-API.