[英]ASP .NET Web API throw new HttpResponseException always returns 500
[英]Web API 2 DELETE method always returns 500
我的Email
Web API 2控制器上有一個操作:
[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
(或通過任何其他方法)從Fiddler調用操作時,我得到一個500
返回的通用IIS錯誤頁面,它沒有提供有關錯誤的信息。
似乎錯誤發生在我的操作被調用之前,因為在操作中設置斷點會導致斷點永遠不會被命中。
是否需要某種配置才能在IIS(Express)中使用DELETE
方法?
我試過在我的web.config中明確允許DELETE
:
<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" />
但無濟於事。
你必須讓你的曝光方式public
:
[HttpDelete]
[Route("Remove/{id}")]
public void Remove(int id) {
_repo.Remove(id);
}
如果這不起作用,那么您可能需要刪除WebDav(web.config):
<system.webServer>
<modules>
<remove name="WebDAVModule" />
</modules>
<handlers>
<remove name="WebDAV" />
</handlers>
</system.webServer>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.