讓IIS識別PUT和DELETE請求


轉眼間年底了,突然的我就挪了窩。新的公司,新的電腦,新的服務器。。。。面對新環境,手有些癢,於是試着編寫自己的簡易版restful API。

restful的話,對資源的相應操作應該被體現成http動詞,增刪改查對應動詞應為post、delete、put、get。

按照思路寫出一個demo以后,運行,結果是這樣的:

好吧,被攔截了,怎么設置呢?網友們的回答五花八門——

有刪除webdav模塊的:

<system.webServer>  
     <modules>  
         <remove name="WebDAVModule" />  
     </modules>  
     <handlers>  
         <remove name="WebDAV" />  
     </handlers>  
 </system.webServer>

有說是因為權限不足造成的,有說是因為頁面form太多造成的,有說是因為…………

以上一眾網友不論對錯,對此處問題都是無效的。

其實關鍵信息就隱藏在大家都能看得到的地方:

這個鏈接看過以后,相信大家心里都有譜了:修改配置。

配置文件在這里:C:\Windows\System32\inetsrv\config\applicationhost.config

需要注意的是該文件無法直接打開,先轉跳至目錄內在進行操作即可。

在這個文件內找到handlers標記,該標記下有所有模塊的配置,修改對應模塊允許的謂詞即可,如:

 <add name="SimpleHandlerFactory-ISAPI-4.0_64bit" path="*.ashx" verb="GET,HEAD,POST,DEBUG,PUT,DELETE" modules="IsapiModule" scriptProcessor="C:\Windows

\Microsoft.NET\Framework64\v4.0.30319\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv4.0,bitness64" responseBufferLimit="0" />

我這里將PUT和DELETE加了進去,運行:

可以看到,delete已經被支持,put也一樣,同理,如果還有什么謂詞想加進來,直接在對應模塊的配置內添加即可。

如果還是不可以,請手動刪除IIS中的WebDav模塊,如下圖:

希望可以幫到大家~

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM