Ste*_*ins 6 c# iis-express http-delete asp.net-web-api2
我的EmailWeb API 2控制器上有一个操作:
[Authorize]
[RoutePrefix("api/Email")]
public class EmailController : ApiController {
//...
[HttpDelete]
[Route("Remove/{id}")]
private void Remove(int id) {
_repo.Remove(id);
}
}
Run Code Online (Sandbox Code Playgroud)
当我使用DELETE http://localhost:35191/api/Email/Remove/35571(或通过任何其他方法)从Fiddler调用该操作时,我得到了一个500通用的IIS错误页面,它没有提供有关错误的信息.
似乎错误发生在我的操作被调用之前,因为在操作中设置断点会导致断点永远不会被命中.
是否需要某种配置来允许DELETEIIS(Express)中的方法?
我试过DELETE在我的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" />
Run Code Online (Sandbox Code Playgroud)
但无济于事.
Ami*_*ich 12
你必须制作暴露的方法public:
[HttpDelete]
[Route("Remove/{id}")]
public void Remove(int id) {
_repo.Remove(id);
}
Run Code Online (Sandbox Code Playgroud)
如果这不起作用,那么您可能需要删除WebDav(web.config):
<system.webServer>
<modules>
<remove name="WebDAVModule" />
</modules>
<handlers>
<remove name="WebDAV" />
</handlers>
</system.webServer>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1823 次 |
| 最近记录: |