REST API 部署在IIS上出现HTTP Error 405.0-Method Not Allowed错误

背景
  • 从服务器上拷贝了API 的部署包部署到我本地IIS上,部署完之后,大部分功能可以正常运行,但是个别请求总是会出错。
分析原因
  • F12看了一下,发现是如下错误。很明显是此HTTP 协议不允许执行。但是服务器上能正常运行,那么说明是我本地部署有问题,先是怀疑IIS 配置有问题。对比了IIS 配置发现也没问题,那么开始怀疑IIS安装有问题。


    F12.png
  • 对比IIS 安装,发现服务器上的IIS安装没有勾选常见HTTP功能下的WebDAV发布项。


    IIS.png
  • 此时尝试在本地IIS中也去掉此选项,重启电脑,再运行程序。一切正常,不会再报错了。此时这个问题也就解决了。

思考

虽说是解决了,但还不知道根本原因是啥,于是上网查询。
给出如下解释:
WebDAV (Web-based Distributed Authoring and Versioning) 一种基于 HTTP 1.1协议的通信协议。它扩展了HTTP 1.1,在GETPOSTHEAD等几个HTTP标准方法以外添加了一些新的方法

所以,IIS中集成这个模块后,会对RESTFUL服务有影响

结束语

当然,网上还给出了其它两种方案:

  • 在config文件中remove WebDAV模块
  • 在iis部署的site中,移除WebDAV模块
    没有验证过,有兴趣的可以尝试一下
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
禁止转载,如需转载请通过简信或评论联系作者。

推荐阅读更多精彩内容