Служба RESTful WCF возвращает ошибку «конечная точка не найдена» в операциях POST - PullRequest
10 голосов
/ 16 марта 2009

Я создал службу WCF, которая предоставляется как через SOAP, так и через REST. Все действия 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 Ответ

5 голосов
/ 19 марта 2009

Я думаю, что WCF выдает ошибку, потому что он действительно не может найти конечную точку. Вы нажимаете POST на правильный URL в / rest? Попробуйте Fiddler , чтобы создать вызов POST.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...