我正在尝试通过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"
答案 0 :(得分:0)
我认为问题是您只能在发布数据中发送一个数据项,但您发送的是2(状态和原因)。
作为测试,您可以删除其中一个参数并尝试仅发送一个项目。这至少会确认问题并从可能出现的问题中删除web.config。
答案 1 :(得分:0)
我找到了问题的原因。我通过错误的URL访问POST。我使用了../object,而不是../object/1。
奇怪的是,当您执行POST时,您在执行GET时不会收到endpoint not found
错误,但会出现method not allowed
错误。