这似乎是一个常见问题,但我已经解决了人们获得的所有其他技术并且没有运气,所以这里是:
我在 Windows Server 2010 上运行 WebAPI2 和 IIS7.5。在开发过程中,我在 IIS 的 HTTP 处理程序中添加了 PUT/DELETE 处理程序后,我的 PUT/DELETE 请求开始工作。但是,一旦我滚动到 prod 并应用了相同的更改,我就没有这样的运气了。这是我的设置:
网络配置
服务器:
要求:
Request URL:http://dev.myserver.com/myapp/api/apps/76a09a7b-0750-4045-a3ce-696df0ff179c
Request Method:PUT
Status Code:405 Method Not Allowed
405 - HTTP verb used to access this page is not allowed.
The page you are looking for cannot be displayed because an invalid method (HTTP verb) was used to attempt access.
响应 header :
Allow:GET, HEAD, OPTIONS, TRACE
Content-Length:1293
Content-Type:text/html
Date:Thu, 21 Nov 2013 15:43:44 GMT
Server:Microsoft-IIS/7.5
X-Powered-By:ASP.NET
不知不觉它很疯狂,因为那个动词是 Not Acceptable ,但配置表明它是。我看到另一篇关于从 IIS 中的模块中删除 WebDav 模块的文章,但是,一旦我这样做了,我得到了 500 内部服务器错误(可能是因为需要它,呵呵)。就像我说的这段代码在开发中正常工作,所以我不确定断开连接是什么。
请您参考如下方法:
似乎我错过了 WebDav 的“HttpHandler”删除。以下作品:
<system.webServer>
<modules>
<remove name="WebDAVModule" />
</modules>
<handlers>
<remove name="WebDAV" />
</handlers>
</system.webServer>




