1. 程式人生 > >不允許用於訪問此頁的 HTTP 謂詞.(親測有效)

不允許用於訪問此頁的 HTTP 謂詞.(親測有效)

 IIS10預設支援http PUT和DELETE請求,但IIS7.5(或更低)預設不接收PUT、DELETE等不常見的http謂詞,如何讓asp.net webform或者asp.net webapi在IIS7.5上支援這些請求呢?

在網上我也試了很多方法:比如

  1. 跨域配置。
  2. 幹掉web.config下system.webServer節點下的<remove name="OPTIONSVerbHandler" />的這個配置。
  3. 修改IIS的的限制動作。等等

有些同學在做了以上的操作問題可能得到了解決,而有些同學做了這些操作卻無濟於事,當然本人也是沒有解決。最終用下面的方法解決了這個問題

注: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錯誤,解決方法也很簡單,在Web.config裡面webService節點下新增如下程式碼:


<modules runAllManagedModulesForAllRequests="true" runManagedModulesForWebDavRequests="true" >
  <remove name="WebDAVModule" />
</modules>
 
<handlers>
  <remove name="WebDAV" />
</handlers>