一劳永逸解决IIS上因不识别PUT和DELETE报405错误问题

百度上的解决方案,基本上是修改web.config配置文件,如下:

<modules runAllManagedModulesForAllRequests="true">
<remove name="WebDAVModule" />
</modules>
<handlers>
<remove name="WebDAV" />
</handlers>

这样是暂时解决了,可问题又来了,在项目前期各种发布测试时,每次配置文件web.config都会被覆盖,这时,你又得重新修改上面的配置,虽然这2个用得不多,可也让人觉得够烦的了。

所以想着,应该有其它解决方法吧?

既然知道是WebDav引起的问题,打开IIS,明明WebDav并没有被启用,为什么还是要在配置文件中移除它呢?

开启它不行吗,开启可以,但是百度了一下,说有很多安全问题,于是放弃了。

偶然中看到这篇文章:https://www.zhangshengrong.com/p/8AaYmor9a2/

终于找到它的源头了,也就是它的根目录:

C:\Windows\System32\inetsrv\config\applicationhost.config

 

打开配置文件,依次找到以下2个节点:

modules:
<add name="WebDAVModule" />

handlers:
<add name="WebDAV" path="*" verb="PROPFIND,PROPPATCH,MKCOL,PUT,COPY,DELETE,MOVE,LOCK,UNLOCK" modules="WebDAVModule" resourceType="Unspecified" requireAccess="None" />

剩下就简单了,把这2行add直接删除,无论发布多少次也无需在web.config上再修改了。

posted @ 2022-05-19 17:05  Luckyfish小文  阅读(323)  评论(0编辑  收藏  举报