
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
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/538275.html
標籤:ASP.NET
上一篇:SQL Server(解決問題)已成功與服務器建立連接,但是在登錄程序中發生錯誤。provider:SSL Provider,error:0 - 證書鏈是由不受信任的頒發機構頒發的
