本地调试没问题,在线上环境上IIIS拒绝PUT和DELETE请求是由于IIS为网站默认注册的一个名为WebDAVModule的自定义HttpModule导致的,如果我们的站点不需要提供针对WebDAV的支持,解决这个问题最为直接的方式就是利用如下配置将注册的HttpModule移除即可:
代码语言:javascript复制1 <system.webServer>
2 <modules runAllManagedModulesForAllRequests="true">
3 <remove name="WebDAVModule" />
4 </modules>
5 <handlers>
6 <remove name="WebDAV" />
7 </handlers>
8 </system.webServer>
除了以上方法还可以通过在部署Web API的网站中,移除掉WebDav模块即可:
还可以通过在卸载WebDav发布: