一劳永逸解决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上再修改了。