.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/