IIS部署WebAPI,PUT/DELETE报错405

在使用IIS部署WebAPI的时候,当请求类型为PUT或者是DELETE的时候,IIS会报错

HTTP Error 405 - Method Not Allowed

其实有很多种解决方法,这里介绍一种移除WebDAV文件的方法来解决这个问题。首先来介绍一下什么是WebDAV

WebDAV是超文本传输协议(HTTP)的一组扩展,为Internet上计算机之间的编辑和文件管理提供了标准,利用这个协议用户可以通过Web进行远程的基本文件操作,如拷贝、移动以及删除等。在IIS 7.0中,WebDAV是作为独立扩展模块,需要单独进行下载,而IIS 7.5中将集成WebDAV,然而WebDAV将PUT和Delete给阉割了。所以在IIS 7.5上部署的RESTful服务(WCF,WebAPI,ASP.NET MVC),当发送PUT或者DELETE请求时,就会出现405的错误。

解决办法很简单,在配置文件中将WebDAV移除了就行了,修改web.config配置文件

1
2
3
4
5
6
7
8
<system.webServer>
<modules>
<remove name="WebDAVModule"/>
</modules>
<handlers>
<remove name="WebDAV"/>
</handlers>
</system.webServer>
avatar

chilihotpot

You Are The JavaScript In My HTML