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.

Другие вопросы по тегам