У меня есть действие на моем Email
Web API 2 контроллера:Web API 2 УДАЛИТЬ метод всегда возвращает 500
[Authorize]
[RoutePrefix("api/Email")]
public class EmailController : ApiController {
//...
[HttpDelete]
[Route("Remove/{id}")]
private void Remove(int id) {
_repo.Remove(id);
}
}
Когда я звоню действие от Скрипач с DELETE
http://localhost:35191/api/Email/Remove/35571
(или любым другим способом), я получаю a 500
назад с общей страницей ошибок IIS, которая не дает мне никакой информации об ошибке.
Похоже, что ошибка возникает до того, как мое действие когда-либо вызвано, потому что установка точки останова в действии приводит к тому, что точка останова никогда не попадает.
Есть ли какая-то конфигурация, необходимая для использования методов DELETE
в IIS (Express)?
Я попытался явно позволяя DELETE
в моем web.config:
<add name="ExtensionlessUrlHandler-Integrated-4.0" path="*." verb="GET,HEAD,POST,DEBUG,PUT,DELETE,PATCH,OPTIONS" type="System.Web.Handlers.TransferRequestHandler" preCondition="integratedMode,runtimeVersionv4.0" />
, но безрезультатно.
У вас есть SyntaxView установлен в Fiddler (он содержит немного больше информации об ошибке)? – Milen
Покажите свою маршрутизацию. У вас есть атрибут '[RoutePrefix (...)]' на 'ApiController'? Это 'api/Email'? Кроме того, как ваш класс контроллера, так и ваш метод действий должны быть «публичными», я считаю. –
SyntaxView только дает мне синтаксически выделенную версию HTML-страницы, которую мне дает IIS. –