1. 程式人生 > 其它 >一勞永逸解決IIS上因不識別PUT和DELETE報405錯誤問題

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