Tôi có một một hành động trên Email
Web API của tôi 2 điều khiển:Web API 2 phương pháp DELETE luôn trả về 500
[Authorize]
[RoutePrefix("api/Email")]
public class EmailController : ApiController {
//...
[HttpDelete]
[Route("Remove/{id}")]
private void Remove(int id) {
_repo.Remove(id);
}
}
Khi tôi gọi hành động từ Fiddler với DELETE
http://localhost:35191/api/Email/Remove/35571
(hoặc bằng bất kỳ phương pháp nào khác) tôi nhận được một 500
trở lại với trang lỗi IIS chung mà cung cấp cho tôi không có thông tin về lỗi.
Dường như lỗi xảy ra trước khi hành động của tôi được gọi là vì thiết lập điểm ngắt trong kết quả hành động trong điểm ngắt không bao giờ bị nhấn.
Có một số loại cấu hình cần thiết để cho phép DELETE
phương pháp trong IIS (Express) không?
tôi đã cố gắng cho phép một cách rõ ràng DELETE
trong web.config của tôi:
<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" />
nhưng vô ích.
Bạn có một SyntaxView được cài đặt trong Fiddler (nó nắm giữ một chút chi tiết về lỗi thường)? – Milen
Hiển thị tuyến đường của bạn. Bạn có thuộc tính '[RoutePrefix (...)]' trên 'ApiController' không? Có phải 'api/Email' không? Hơn nữa, cả lớp điều khiển và phương thức hành động của bạn phải là 'công khai' tôi tin. –
Cú pháp chỉ cung cấp cho tôi một phiên bản cú pháp được tô sáng của trang HTML mà IIS cung cấp cho tôi. –