Ich habe einen grundlegenden Web-API-Controller in MVC 6 (Beta 3) als Teil eines neuen ASP.NET-Projekts gebaut. Das Problem, auf das ich gestoßen bin, ist, dass es die Verben PUT oder PATCH nicht akzeptiert und einen Fehler 404 zurückgibt, wenn ich versuche, mit diesen Methoden auf eine URL zuzugreifen.ASP.NET 5 + MVC 6 + Web API-Controller mit PUT oder PATCH Verben gibt 404 Fehler
Hier ist, was ich als Basistest bekam:
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!";
}
}
}
Besuch http://localhost/api/test
mit 'Postman' die URL mit jedem der Verben zu überprüfen (GET, POST, DELETE, PUT und PATCH) in Turn funktioniert gut für GET, POST und DELETE, gibt aber einen 404 mit PUT und PATCH.
Edit: ich es erinnere mich, dass eine Möglichkeit, diese Verben für MVC5 ermöglichen und unteren, die WebDAV und Hinzufügen von Handlern für die beiden Verben über web.config
beteiligt zu deaktivieren, aber es gibt nicht so etwas wie web.config
in ASP.NET 5 Ich habe einen totalen Verlust darüber, wie ich das beheben kann. Ich gehe davon aus, dass es wahrscheinlich über config.json
gelöst wurde, aber alle meine Versuche, danach zu suchen, haben nichts hilfreiches zurückgebracht!
Eine vorherige Seite, die ich in MVC5 entwickeln dieses Problem nicht hat, und an der web.config
Datei angesehen hat, scheint es nichts da drin zu sein, dass (eigentlich deinstalliert es) WebDAV deaktiviert oder erlaubt Umgang mit PUT/PATCH-Methoden für erweiterungsfreie URLs. Ich glaube also nicht, dass das, was ich vorher geschrieben habe, zutrifft.
Irgendwelche Ideen?
Dank
Web.config ist noch vorhanden und für IIS erforderlich –
Obwohl ich nichts in meinem Code geändert habe, scheint es heute Morgen gut zu funktionieren. Ich werde das hier als Fehler bezeichnen, weil es keinen Grund gibt, warum es vorher nicht funktioniert haben sollte und plötzlich angefangen hat zu arbeiten. –
Es ist seltsam, dass obige Code für jedes Verb für mich gut funktioniert. – dotnetstep