2009-03-16 14 views
10

SOAPとRESTfulの両方で公開されているWCFサービスを構築しました。すべてのSOAPアクションは、宣言されたとおりに動作します。 GETS/PUTSは同様に行うが、私は私のサービスでアクションにPOSTを実行しようとするとき、私は次のエラーが返されます:RESTfulなWCFサービスが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); 

サービスをこのように構成されています。私は、同じエンドポイントに対して他のRESTfulな操作を行うことができますので

<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> 

を、私はなぜそれが半有用なエラーことを私に与え全くわからないんだけど。

アイデア?

+0

私は同じ問題を抱えています( – Evgeny

答えて

5

実際にエンドポイントを見つけることができないため、WCFがエラーを出すと思います。/restの下の正しいURLにPOSTを使って打っていますか? Fiddlerを試してPOST呼び出しを作成してください。

+2

それは魔法のように去ってしまいましたが、何が問題なのか分かりませんでしたが、あなたが答えた唯一の人なので、感謝!同じような角度からいくつかのモックとテストプロジェクトを構築する –

+32

質問に実際に答えがない限り、答えに印を付けないでください。後で同じ問題を抱えるユーザーには混乱します。 – reach4thelasers

+0

私は同じ問題を抱えています。しかし、HttpGetは動作しますが、私はPOSTと同じ方法を使いましたが、エンドポイントが見つからないというエラーが出ました。本当の問題は何か分かりましたか? – mservidio

関連する問題