2

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

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

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

IE

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

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

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

4

1 回答 1

0

取自这里

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

我想在 IIS url 重写/允许的动词检查代码中有些东西不太一致。
希望这可以帮助。

于 2011-11-11T16:29:08.707 回答