簡體   English   中英

Web API 2 DELETE方法始終返回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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM