IIS7 HTTP/405 Method not allowed , 服務啓用 PUT謂詞

    面向服務開發越來越普及的今天,使用WebService、WCF、WebAPI和ServiceStack一類SOA開發的項目越來月火,使用SOA面向服務開發時候通常要啓用HTTP的GET POST之外的其他謂詞,比如PUT、DELETE,而默認情況下IIS7是不開啓其他謂詞的,這樣做好的服務就被屏蔽掉,不能被外部訪問了(開發時候沒有使用IIS,所以不存在這個問題)。


    於是乎找了不少網上資料,包括了外文的,解決方式基本就是兩種方式,這裏轉載一下找到的資料:

      來自一箇中文博客的,作者dwtedx


-------轉載開始 {---------------------------------------------


問題描述:

使用WCF 4.0 開發REST服務、部署到windows 7 64位 IIS 7.5 (應用程序池選擇的是ASP.NET V4.0) 上

GET、POST方式都能成功、但是PUT,DELETE報錯

HTTP 錯誤 405.0 - Method Not Allowed 無法顯示您正在查找的頁面

因爲使用了無效方法(HTTP 謂詞)

但是如果使用VS2010 調試模式、GET、POST、PUT、DELETE都成功

這說明代碼本身沒有任何問題、 問題出在IIS 7.5 設置上


解決方案:

一、如果是處理程序裏沒有相關後綴

1.處理程序映射

2.添加腳本映射

3.請求路徑:*.html

4.可執行文件:C:/windows/system32/inetsrv/asp.dll

5.請求限制-謂詞:輸入需要允許請求的謂詞(POST,GET,PUT)

6.輸入名字後保存

7.重啓站點


二、如果處理程序有相關後綴

1.處理程序映射

2.找到腳本映射

3.如:請求路徑:*.ashx

4.請求限制-謂詞:輸入需要允許請求的謂詞(POST,GET,PUT)

5.輸入名字後保存、如:DELETE

6.重啓站點

更多方案:

我在網上找到了另外的解決方案、我沒有測試過

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

頁面標題:IIS7 HTTP 405 Method Not Allowed_PUT and DELETE me_dwtedx博客

來源網址: http://dwtedx.sinaapp.com/itshare_112.html

-----------轉載結束  }---------------------------------------------------------


另一篇博文中說明的更明晰,


-------轉載開始 {---------------------------------------------

來源網址:http://www.cnblogs.com/shanyou/archive/2012/03/23/2414252.html

作者:張善友

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裏面加入如下設置:

[配置的內容同上]

-----------轉載結束  }---------------------------------------------------------




在我們遇到的問題,是使用的修改web.config的解決方式。



這個是在IIS.net論壇上的交流(E文好的朋友可以看看),http://forums.iis.net/t/1196237.aspx

交流的跨站訪問  Cross-site HTTP requests 時候的一些問題



另一篇關於CORS的(E文的探討)http://brockallen.com/2012/10/18/cors-iis-and-webdav/



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章