WebDAV 是超文本傳輸協議 (HTTP) 的一組擴展,為 Internet 上電腦之間的編輯和文件管理提供了標準.利用這個協議用戶可以通過Web進行遠程的基本文件操作,如拷貝、移動、刪除等。 在IIS 7.0中,WebDAV是作為獨立擴展模塊,需要單獨進行下載,而IIS 7.5以及以上版本中... ...
1、系統本地開發環境運行正常,在部署到伺服器之後出現Put請求報405 - Method Not Allowed 錯誤。
錯誤情況如下圖:
2、通過分析,為WebDAV插件導致。
WebDAV 是超文本傳輸協議 (HTTP) 的一組擴展,為 Internet 上電腦之間的編輯和文件管理提供了標準.利用這個協議用戶可以通過Web進行遠程的基本文件操作,如拷貝、移動、刪除等。
在IIS 7.0中,WebDAV是作為獨立擴展模塊,需要單獨進行下載,而IIS 7.5以及以上版本中將集成WebDAV,然而WebDav把Put,Delete禁用了。
所以在IIS 7.5上部署的RESTful服務(WCF Data Service,WCF Rest Service,ASP.NET Web API,ASP.NET MVC)後,當發送Put請求就會發生HTTP Error 405.0 – Method Not Allowed錯誤。
3、對應解決方法如下:
在Web.config文件中system.webServer節點下增加如下針對WebDAV配置:
<modules> <remove name="WebDAVModule" /> </modules> <handlers> <remove name="WebDAV" /> </handlers>
完整的配置文件如下圖:
代碼如下:
<system.webServer> <httpProtocol> <customHeaders> <add name="Access-Control-Allow-Methods" value="OPTIONS,POST,GET,PUT,DELETE" /> <add name="Access-Control-Allow-Headers" value="x-requested-with,content-type,AuthenticationToken" /> <add name="Access-Control-Allow-Origin" value="*" /> </customHeaders> </httpProtocol> <modules > <remove name="WebDAVModule" /> </modules> <handlers> <remove name="ExtensionlessUrlHandler-Integrated-4.0" /> <remove name="TRACEVerbHandler" /> <remove name="WebDAV" /> <add name="ExtensionlessUrlHandler-Integrated-4.0" path="*." verb="*" type="System.Web.Handlers.TransferRequestHandler" preCondition="integratedMode,runtimeVersionv4.0" /> </handlers> </system.webServer>View Code
4、以上問題解決後如執行結果如下圖所示:
本文來自博客園,作者:古道輕風,轉載請註明原文鏈接:https://www.cnblogs.com/88223100/p/WebDAV-PUT-405-Method_Not_Allowed.html