讓IIS支持.NET?Web?Api?PUT和DELETE請(qǐng)求(返回405的問(wèn)題)
前言
有很長(zhǎng)一段時(shí)間沒(méi)有使用過(guò)IIS來(lái)托管應(yīng)用了,今天用IIS來(lái)托管一個(gè)比較老的.NET Fx4.6的項(xiàng)目。發(fā)布到線上后居然一直調(diào)用不同本地卻一直是正常的,關(guān)鍵是POST和GET請(qǐng)求都是正常的,只有PUT和DELETE請(qǐng)求是有問(wèn)題的。經(jīng)過(guò)一番思考忽然想起來(lái)了IIS默認(rèn)情況下拒絕處理PUT和DELETE請(qǐng)求,要支持這兩種請(qǐng)求的話需要做一些配置。
HTTP請(qǐng)求 405錯(cuò)誤 方法不被允許 (Method Not Allowed)

為什么IIS拒絕處理PUT和Delete請(qǐng)求?
IIS默認(rèn)情況下拒絕處理PUT和DELETE請(qǐng)求的原因是出于安全考慮。PUT和DELETE方法被設(shè)計(jì)為具有寫(xiě)入和刪除數(shù)據(jù)的能力,如果未正確配置和保護(hù),可能會(huì)導(dǎo)致潛在的安全漏洞。
針對(duì)這些HTTP方法,微軟開(kāi)發(fā)了WebDAV(Web-based Distributed Authoring and Versioning)擴(kuò)展,它允許用戶在Web服務(wù)器上直接編輯和管理文件。IIS默認(rèn)注冊(cè)了一個(gè)名為"WebDAVModule"的自定義HttpModule,用于提供WebDAV支持。
為了防止未經(jīng)授權(quán)的訪問(wèn)和潛在的攻擊,IIS默認(rèn)情況下僅允許GET和POST請(qǐng)求,并拒絕處理PUT和DELETE請(qǐng)求。這樣可確保服務(wù)器上的文件只能通過(guò)受限的方法進(jìn)行修改和刪除。
直接到IIS模塊中刪除WebDAVModule[不起效果]
進(jìn)入IIS,選中出問(wèn)題的站點(diǎn)或應(yīng)用,可以看到其主頁(yè)上有個(gè)模塊功能,如下圖所示:

雙擊模塊功能,進(jìn)入其詳細(xì)頁(yè)面,可以看到WebDAVModule項(xiàng),如下圖所示:

右擊WebDAVModule,在右擊菜單里點(diǎn)擊刪除,或者在右側(cè)的操作里點(diǎn)擊刪除,如下圖所示:

重啟站點(diǎn)或應(yīng)用,搞定?。?!dos或運(yùn)行下(iisreset /restart)
在應(yīng)用程序的Web.config配置如下代碼[有用]
作用是移除 IIS 中的 "WebDAVModule" 模塊,并允許所有請(qǐng)求運(yùn)行托管模塊。這個(gè)配置適用于需要使用 PUT 和 DELETE 請(qǐng)求的應(yīng)用程序或需要托管模塊對(duì)所有請(qǐng)求進(jìn)行處理的情況。在實(shí)際應(yīng)用中,請(qǐng)根據(jù)需要和安全性考慮進(jìn)行評(píng)估和使用。
<configuration>
<system.webServer>
<modules runAllManagedModulesForAllRequests="true">
<remove name="webDAVModule"/>
</modules>
<system.webServer>
</configuration>到此這篇關(guān)于讓IIS支持.NET Web Api PUT和DELETE請(qǐng)求(返回405的問(wèn)題)的文章就介紹到這了,更多相關(guān)IIS支持DELETE/PUT請(qǐng)求內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
基于Win2008 R2的WSFC實(shí)現(xiàn) SQL Server 2012高可用性組(AlwaysOn Group)
SQL Server 2012高可用性組在實(shí)現(xiàn)過(guò)程中較之早起的SQL Server故障轉(zhuǎn)移群集來(lái)講,不依賴特別提供共享存儲(chǔ)磁盤(pán)陣列,每個(gè)節(jié)點(diǎn)獨(dú)立存儲(chǔ)一份數(shù)據(jù)庫(kù)的副本2013-06-06
iis PHP5配置 PHP擴(kuò)展模塊加載不進(jìn)來(lái)
解決方法1.PHP.INI文件的訪問(wèn)權(quán)限不夠,將文件的訪問(wèn)權(quán)限設(shè)為 everyone .如果文件系統(tǒng)為FAT32的不會(huì)有些問(wèn)題。2009-04-04
IIS同時(shí)集成多個(gè)Resin(不同版本)的注意事項(xiàng)
IIS上指定網(wǎng)站用不同的Resin版本來(lái)解析2008-10-10
WindowsServer2012 R2中IIS8.5安裝證書(shū)的實(shí)現(xiàn)步驟
IIS8.5和更高版本IIS 8.5中推出了“證書(shū)重新綁定”功能,本文主要介紹了WindowsServer2012 R2中IIS8.5安裝證書(shū)的實(shí)現(xiàn)步驟,具有一定的參考價(jià)值,感興趣的可以了解一下2024-05-05
windows server 2019 性能優(yōu)化和安全配置小結(jié)
這篇文章主要介紹了windows server 2019 性能優(yōu)化和安全配置小結(jié),需要的朋友可以參考下2023-04-04
Windows Server 2019 網(wǎng)絡(luò)負(fù)載均衡服務(wù)配置與管理(理論+網(wǎng)絡(luò)拓?fù)浼罢f(shuō)明)
介紹了負(fù)載均衡的基本概念(包括負(fù)載均衡的定義,有無(wú)負(fù)載均衡器的拓?fù)鋵?duì)比,負(fù)載均衡的工作原理,負(fù)載均衡的三要素),網(wǎng)絡(luò)負(fù)載均衡的特性,集群部署要求,網(wǎng)絡(luò)拓?fù)湟约罢f(shuō)明2023-05-05
Win10下jdk安裝及環(huán)境變量配置詳細(xì)教程
本文詳細(xì)講解了Win10下jdk安裝及環(huán)境變量配置的詳細(xì)教程,文中通過(guò)示例代碼介紹的非常詳細(xì)。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2021-11-11
Windows7 apache啟動(dòng)失敗的解決方法
Windows7啟動(dòng)apache失敗了,大家可以參考下下面的方法,看看。2009-07-07
阿里云Windows 2008一鍵安裝包配置php web環(huán)境圖文安裝教程(IIS+Php+Mysql)
這篇文章主要介紹了阿里云Windows 2008一鍵安裝包配置web環(huán)境圖文安裝教程(IIS+Php+Mysql),當(dāng)前使用2008 r2的朋友越來(lái)越多了,這個(gè)安裝包對(duì)于快速架設(shè)php運(yùn)行環(huán)境是非常不錯(cuò)的工具2016-10-10

