.NET中的REST服务问题

时间:2011-03-30 07:34:32

标签: .net rest post wcf

我正在尝试通过wcf创建一个REST服务,并成功实现了通过[WebInvoke(Method = "GET")]调用的函数

现在我想创建一个使用Method="POST"的更新功能。这失败了405:方法不允许。我怀疑我可能需要在web.config中配置一些东西。

我在VS2010调试器中运行wcf服务时出现此错误。

这是服务的定义:

[OperationContract]
[WebInvoke(Method = "POST", ResponseFormat = WebMessageFormat.Xml, BodyStyle = WebMessageBodyStyle.Bare,
    UriTemplate = "object/{id}?status={status}&reason={reason}")]
Textblock SetObjectStatus(string id, string status, string reason);

当我通过带有HttpWebRequest req的{​​{1}}调用此方法时,我收到错误405:不允许使用方法。

我的web.config看起来像这样:

Method = "POST"

2 个答案:

答案 0 :(得分:0)

我认为问题是您只能在发布数据中发送一个数据项,但您发送的是2(状态和原因)。

作为测试,您可以删除其中一个参数并尝试仅发送一个项目。这至少会确认问题并从可能出现的问题中删除web.config。

答案 1 :(得分:0)

我找到了问题的原因。我通过错误的URL访问POST。我使用了../object,而不是../object/1。

奇怪的是,当您执行POST时,您在执行GET时不会收到endpoint not found错误,但会出现method not allowed错误。