.net framework
在Web.config文件中添加如下配置:
<system.webServer>
<modules runAllManagedModulesForAllRequests="true"> <remove name="WebDAVModule"/> </modules> ...... </system.webServer>
參考資料
https://stackoverflow.com/questions/15619075/webapi-delete-not-working-405-method-not-allowed
.net core
<system.webServer>
<modules runAllManagedModulesForAllRequests="false"> <remove name="WebDAVModule"/> </modules> ...... </system.webServer>
被這個false和true坑苦了,在這里祭奠一下
大概情狀是,.net core的項目,如果runAllManagedModulesForAllRequests="true",在不同的電腦上會出現幾種不同的情況:
1.運行正常,delete方法成功執行
2.運行不正常,VS報錯,em.....內容忘掉了
3.運行不正常,VS不報錯,但是生成被中斷,輸出不報錯,輸出顯示
程序“[3780] dotnet.exe”已退出,返回值為 0 (0x0)。
程序“[3780] dotnet.exe: 程序跟蹤”已退出,返回值為 0 (0x0)。
程序“[13356] chrome.exe: WebKit”已退出,返回值為 -1 (0xffffffff)。
一臉懵逼地把.net core,IIS,VS,項目的環境檢查了一遍,哈哈哈哈哈哈哈哈 = . =
參考資料
http://hovercraft.ie/asp-net-core-web-api-put-delete-methods-not-allowed-405-error/