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,在GET、POST、HEAD等几个HTTP标准方法以外添加了一些新的方法

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

结束语

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

  • 在config文件中remove WebDAV模块
  • 在iis部署的site中,移除WebDAV模块
    没有验证过,有兴趣的可以尝试一下

你可能感兴趣的:(REST API 部署在IIS上出现HTTP Error 405.0-Method Not Allowed错误)