RESTful WCF服务在POST操作上返回“端点未找到”错误

时间:2009-03-16 15:15:31

标签: .net wcf rest

我已经构建了一个通过SOAP和RESTly公开的WCF服务。所有SOAP操作都与广告一样有效。 GETS / PUTS也可以,但是当我尝试对我的服务中的操作执行POST时,我收到以下错误:

“未找到端点”

IPersonEditServiceContract片段:

[OperationContract]
[WebInvoke(Method="POST", 
   UriTemplate="/persons", 
   RequestFormat=WebMessageFormat.Xml, 
   ResponseFormat=WebMessageFormat.Xml)]
SavePersonResponse SavePerson(SavePersonRequest request);


[OperationContract]
WebGet(UriTemplate = "/persons/{personId}",
   ResponseFormat = WebMessageFormat.Xml,
   BodyStyle = WebMessageBodyStyle.Bare,
   RequestFormat = WebMessageFormat.Xml)]
Person GetClaimantById(string personId);

服务以这种方式配置:

<behaviors>
   <endpointBehaviors>
    <behavior name="restBehavior">
     <webHttp />
    </behavior>
   </endpointBehaviors>
</behaviors>
<services>
  <service>
    <endpoint address="" binding="basicHttpBinding" 
        name="DefaultEndpoint"
        bindingNamespace="http://mycompany.com/ServiceContracts"
        contract="IPersonEditServiceContract" />
     <endpoint 
         address="rest" binding="webHttpBinding"
         name="RESTEndpoint" 
         bindingNamespace="http://mycompany.com/ServiceContracts"
         contract="IPersonEditServiceContract" 
         behaviorConfiguration="restBehavior"/>
  </service>
</services>

由于我可以对同一个端点执行其他RESTful操作,因此我不能完全确定它为什么会给我这个半有用的错误。

想法?

1 个答案:

答案 0 :(得分:5)

我认为WCF会给出错误,因为它确实无法找到端点。你是否使用POST到/ rest下的正确URL?尝试Fiddler创建POST呼叫。