2011-11-11 55 views
2

我有在VS2008(3.5)中編寫的IIS6下本地運行的WCF REST服務。Extensionless REST WCF服務爲PUT方法返回http 405

svc文件的asp.net ISAPI映射配置爲接受所有動詞 我已啓用通配符腳本映射,以允許無擴展URI通過url重寫與服務一起使用。

因此,運行PUT到指定的.svc文件的其餘服務工作正常。 做與SVC一樣省略了回報405

http://thehost/therestmethod = 405 http://thehost/theservice.svc/therestmethod = 200

所有網址書面版本,PUT是唯一的例外工作!當試圖在擴展版本上的PUT時,我點擊了url rewrite ok,但是之後出現錯誤,所以我知道重寫成功了。

我試過使用WCF跟蹤,但這不記錄錯誤。它似乎沒有那麼遠?!?!

回答

0

here摘自:

HTTP動詞:雖然大多數防火牆和Web客戶端允許HTTP GET和POST動詞,他們中的一些不支持PUT,DELETE和其他動詞。要啓用這些不受支持的動詞的調用,通常的做法是在POST請求上使用X-HTTP-Method-Override HTTP標頭來指定您希望調用的方法。 XHttpMethodOverride示例描述瞭如何實現此功能。

我想象一下,在IIS url重寫/允許的動詞檢查代碼中,某些東西並不完全對齊。
希望這會有所幫助。

+0

由於沒有涉及防火牆,這將消除,再加上包括svc文件工作正常 – Spencer