解决.net core webapi iis发布之后 put、 delete 请求错误405.0

前言

大家好,我是码农刚子。前段时间自己下班后在家里写了个简单的记账本微信小程序,后端是asp.net core webapi 8.0,实现了一些基础的功能:授权登录、交易记录添加修改删除、以及分类统计等。本地调试都是正常的,于是我将api项目部署到windows服务器的iis上面,然后在小程序上面测试,添加记录可以正常保存,但是删除和修改时显示操作失败。很纳闷啊,跨域问题我也已经配置了的,所有肯定不是跨域的问题。那是什么原因呢?

原因分析

经过调试发现问题:在请求put 和 delete 时出现错误代码为 405

经过百度看到有前辈已经解决了此问题,是由于iis中 WebDavModule 模块的影响导致的。于是我跟着操作之后,也解决了这个问题,所以也在这里记录一下

那为什么webDavModule 会影响 put 、delete 操作呢?

在某些情况下,开启了WebDAV模块可能会导致.NET Core应用程序中的PUT和DELETE请求出现405 Method Not Allowed的问题。

WebDAV模块模块作用:WebDAV模块是一个常见的HTTP功能模块,它默认情况下会处理PUT和DELETE请求。在某些配置下,WebDAV模块会拦截这些请求并返回405错误,因为它默认情况下不允许这些请求通过。

解决办法

打开iis ->功能视图->模块->删除 WebDavModule(这个模块的名称也可能是WebDavModule2) ,选中然后点击右边的删除按钮,删除之后put、delete操作恢复正常了,如下图:

​以上就是《解决.net core webapi iis发布之后 put、 delete 请求错误405.0》的全部内容,希望你有所收获。关注、点赞,持续分享