一勞永逸解決IIS上因不識別PUT和DELETE報405錯誤問題
阿新 • • 發佈:2022-05-19
百度上的解決方案,基本上是修改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上再修改了。