IIS7.5上的REST服务的Put/Delete操作发生HTTP Error 405.0 - Method Not Allowed 解决方法

近期在一个项目中用到WebApi 2,遇到一个很诡异的问题,负责前端开发的同事再调用一个Delete 请求的方法时,问题报一个405“Method Not Allowed ”的错误,其它GET,POST请求都是正常的,而且我本地测试也是正常的。经过一翻努力发现,他的接口部署在了本机的IIS上,然后就这个原因在网上搜索,终于在园子里找到了一篇类似问题的文章《IIS7.5上的REST服务的Put操作发生HTTP Error 405.0 - Method Not Allowed 解决方法 》顺利解决了这个问题

摘抄如下:

WebDAV 是超文本传输协议 (HTTP) 的一组扩展,为 Internet 上计算机之间的编辑和文件管理提供了标准.利用这个协议用户可以通过Web进行远程的基本文件操作,如拷贝、移动、删除等。在IIS 7.0中,WebDAV是作为独立扩展模块,需要单独进行下载,而IIS 7.5中将集成WebDAV,然而WebDav把Put,Delete给咔嚓了。所以在IIS 7.5上部署的RESTful服务(WCF Data Service,WCF Rest Service,ASP.NET Web API,ASP.NET MVC)就悲剧了,当发送Put请求就会发生HTTP Error 405.0 – Method Not Allowed错误,解决方法也很简单,在Web.config里面加入如下设置:

<system.webServer> 
  <modules> 
    <remove name="WebDAVModule" /> 
  </modules> 
  <handlers> 
    <remove name="WebDAV" /> 
  </handlers> 
</system.webServer>

http://brockallen.com/2012/10/18/cors-iis-and-webdav/

上一篇‡: VS2013在Windows Server 2008下卡慢

下一篇‡: 公交卡被掉包找回攻略

最近回复