背景
- 從服務(wù)器上拷貝了API 的部署包部署到我本地IIS上乔妈,部署完之后,大部分功能可以正常運(yùn)行路召,但是個(gè)別請求總是會出錯。
分析原因
-
F12看了一下身隐,發(fā)現(xiàn)是如下錯誤唯灵。很明顯是此HTTP 協(xié)議不允許執(zhí)行。但是服務(wù)器上能正常運(yùn)行垢揩,那么說明是我本地部署有問題敛瓷,先是懷疑IIS 配置有問題。對比了IIS 配置發(fā)現(xiàn)也沒問題琐驴,那么開始懷疑IIS安裝有問題秤标。
F12.png -
對比IIS 安裝苍姜,發(fā)現(xiàn)服務(wù)器上的IIS安裝沒有勾選常見HTTP功能下的WebDAV發(fā)布項(xiàng)。
IIS.png 此時(shí)嘗試在本地IIS中也去掉此選項(xiàng)馍乙,重啟電腦,再運(yùn)行程序丝格。一切正常,不會再報(bào)錯了预伺。此時(shí)這個(gè)問題也就解決了曼尊。
思考
雖說是解決了,但還不知道根本原因是啥骆撇,于是上網(wǎng)查詢神郊。
給出如下解釋:
WebDAV (Web-based Distributed Authoring and Versioning) 一種基于 HTTP 1.1協(xié)議的通信協(xié)議。它擴(kuò)展了HTTP 1.1屿岂,在GET、POST阻肩、HEAD等幾個(gè)HTTP標(biāo)準(zhǔn)方法以外添加了一些新的方法
所以运授,IIS中集成這個(gè)模塊后,會對RESTFUL服務(wù)有影響
結(jié)束語
當(dāng)然吁朦,網(wǎng)上還給出了其它兩種方案:
- 在config文件中remove WebDAV模塊
- 在iis部署的site中逗宜,移除WebDAV模塊
沒有驗(yàn)證過,有興趣的可以嘗試一下