上線WebAPI專案的時候,發現只要用非Get與Post的動詞呼叫API,就會得到這個405的錯誤,最後上網找了一下資料跟請教同事,紀錄一下狀況。
首先如果IIS的的WebDAV功能有被啟動,那這些Http動詞就會被擋掉。但我同時也懷疑是安裝WebDeploy會開啟這個功能(目前沒有證實),會這樣懷疑是因為這個服務之前是沒問題的,但當天安裝了WebDeploy要建置CI環境時,這服務相關動詞就掛了。
但當天安裝WebDeploy的多台機器中,有些裝完也沒啟動WebDAV,現在不知道到底是需要特定環境或設定會開啟這個功能,還是一開始安裝IIS就勾選啟動了這功能,總之要小心就是了
[![](https://4.bp.blogspot.com/-HKu_UbhGZWg/WDubNA_FOUI/AAAAAAAAIBw/he7Kx_8_nh8GaCzrFKOzUgIn2zOeodTTwCLcB/s640/%25E6%259C%25AA%25E5%2591%25BD%25E5%2590%258D.png)](https://4.bp.blogspot.com/-HKu_UbhGZWg/WDubNA_FOUI/AAAAAAAAIBw/he7Kx_8_nh8GaCzrFKOzUgIn2zOeodTTwCLcB/s1600/%25E6%259C%25AA%25E5%2591%25BD%25E5%2590%258D.png)
如果發現WebDAV被啟動,同時發生405錯誤時,在該網站的WebConfig加上以下區段來解決。
1 | <system.webServer> |