c# – Web API 2 DELETE方法始终返回500
发布时间:2020-12-15 18:03:45 所属栏目:百科 来源:网络整理
导读:我的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:/
我的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" /> 但无济于事. 解决方法
你必须公开暴露的方法:
[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> (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |