背景
- 从服务器上拷贝了API 的部署包部署到我本地IIS上,部署完之后,大部分功能可以正常运行,但是个别请求总是会出错。
分析原因
-
F12看了一下,发现是如下错误。很明显是此HTTP 协议不允许执行。但是服务器上能正常运行,那么说明是我本地部署有问题,先是怀疑IIS 配置有问题。对比了IIS 配置发现也没问题,那么开始怀疑IIS安装有问题。
-
对比IIS 安装,发现服务器上的IIS安装没有勾选常见HTTP功能下的WebDAV发布项。
此时尝试在本地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模块
没有验证过,有兴趣的可以尝试一下