Mam podstawowy kontroler Web API zbudowany w MVC 6 (beta 3) w ramach nowego projektu ASP.NET. Problemem, który napotkałem, jest to, że nie akceptuje on czasowników PUT lub PATCH i zwraca błąd 404, gdy próbuję uzyskać dostęp do adresu URL tymi metodami.ASP.NET 5 + MVC 6 + Web API kontroler z tekstem PUT lub PATCH zwraca błąd 404
Oto co mam jako podstawowego badania:
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!";
}
}
}
Zwiedzanie http://localhost/api/test
z 'Listonosz', aby sprawdzić adres URL z każdym z czasowników (GET, POST, DELETE, PUT i łata) w włącz działa dobrze dla GET, POST i DELETE, ale daje 404 z PUT i PATCH.
Edit: Pamiętam, że będąc sposobem na odblokowanie tych czasowników na MVC5 i niższy niż udział wyłączenie WebDAV i dodanie teleskopowe na dwóch czasowników poprzez web.config
, ale ponieważ nie ma czegoś takiego jak web.config
w ASP.NET 5 Mam całkowitą stratę, jak to naprawić. Zakładam, że prawdopodobnie został rozwiązany przez config.json
, ale wszystkie moje próby wyszukania tego nie zwróciły nic użytecznego!
Poprzednia strona, którą stworzyłem w MVC5, nie ma tego problemu, a po przejrzeniu pliku web.config
nie ma tam niczego, co wyłącza WebDAV (w rzeczywistości jest odinstalowany) lub pozwala na obsługę PUT/Metody PATCH dla adresów URL bez rozszerzenia. Więc nie sądzę, że to, o czym pisałem wcześniej, ma zastosowanie.
Wszelkie pomysły?
Dzięki
Web.config nadal istnieje i jest wymagany dla IIS –
Pomimo niezmieniania czegokolwiek w moim kodzie, wygląda na to, że działa dobrze dziś rano. Zamierzam to sklasyfikować jako błąd, ponieważ nie ma powodu, dla którego nie powinien był pracować wcześniej i nagle zaczął działać. –
To dziwne, że powyższy kod działa dobrze dla każdego czasownika dla mnie. – dotnetstep