无扩展REST WCF服务为PUT方法返回http 405

时间:2011-11-11 16:21:34

标签: wcf rest iis-6 http-status-code-405 svc

我在VS2008(3.5)编写的IIS6下本地运行WCF REST服务。

svc文件的asp.net ISAPI映射配置为接受所有谓词 我已启用通配符脚本映射,以允许无扩展URI通过url rewrite与服务一起使用。

因此,使用指定的.svc文件将PUT运行到其余服务可以正常工作。 对省略的svc执行相同操作将返回405。

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

所有url书面版本都与PUT一起使用是唯一的例外!在无扩展版本上尝试PUT时,我点击了url重写ok但是错误之后我知道重写成功了。

我尝试过使用WCF跟踪,但这并没有记录错误。好像它没有那么远?!?!

1 个答案:

答案 0 :(得分:0)

取自here

HTTP动词:虽然大多数防火墙和Web客户端都允许HTTP GET和POST动词,但其中一些不支持PUT,DELETE和其他动词。要启用此类不受支持的谓词的调用,通常的做法是在POST请求上使用X-HTTP-Method-Override HTTP标头来指定要调用的方法。 XHttpMethodOverride示例描述了如何实现此功能。

我想在IIS url重写/允许动词检查代码中,某些内容并不完全一致 希望这会有所帮助。