Ho un un'azione sul mio Email
Web API 2 Controller:Web API 2 metodo DELETE restituisce sempre 500
[Authorize]
[RoutePrefix("api/Email")]
public class EmailController : ApiController {
//...
[HttpDelete]
[Route("Remove/{id}")]
private void Remove(int id) {
_repo.Remove(id);
}
}
Quando chiamo l'azione da Fiddler con DELETE
http://localhost:35191/api/Email/Remove/35571
(o con qualsiasi altro metodo) ottengo a 500
indietro con la pagina di errore generica di IIS che non mi dà informazioni sull'errore.
Sembra che l'errore si verifichi prima che la mia azione venga mai chiamata perché l'impostazione di un punto di interruzione all'interno dell'azione determina il mancato raggiungimento del punto di interruzione.
Esiste una sorta di configurazione richiesta per consentire i metodi DELETE
in IIS (Express)?
Ho provato consentendo esplicitamente DELETE
nel mio 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" />
ma senza alcun risultato.
Avete un SyntaxView installato in Fiddler (contiene di solito un po 'più dettagli sull'errore)? – Milen
Mostra il tuo percorso. Hai un attributo '[RoutePrefix (...)]' su 'ApiController'? È 'api/Email'? Inoltre, sia la classe del controller che il metodo di azione devono essere "pubblici", credo. –
SyntaxView mi fornisce solo una versione evidenziata dalla sintassi della pagina HTML fornita da IIS. –