2011-08-02 80 views
3

ブラウザからRest Wcfサービスをテストしようとしています。 ブラウザからいくつかの値を送信しようとすると、次のエラーが発生します。 "EndpointDispatcherでAddressFilterが一致していないため、受信者 でメッセージを処理できません。
送信者と受信者のエンドポイントアドレスが一致することを確認してください。Rest Wcfサービス

次に[ServiceBehavior(AddressFilterMode = AddressFilterMode.Any)]を追加しました。 違うエラーが発生しています。原因EndpointDispatcherでContractFilterのミスマッチに

」。 これが理由のいずれかの契約の不一致 または 送信者と受信者の間の結合/セキュリティの不一致(送信者と受信者の間で不一致アクション)。
チェックのものであってもよいです送信者と受信者は同じ契約と同じバインディングを持っています(セキュリティ要件、たとえばメッセージ、トランスポート、なしを含む) 。

Rest Wcf Serviceに値をブラウザから渡すことはできますか?

ブラウザから次の値を渡そうとしています。ここ

http://mywebsite/Service1.svc/mymethod/Firstname,Lastname,LosAngles,CA 

は私のweb.confgファイルには、RESTエンドポイント上<webHttp/>動作を有効にしなかったように見えます

<system.serviceModel> 
    <services>    
     <service behaviorConfiguration="Wcfservice1.ServiceBehavior" name="="Wcfservice1.Service1"> 
     <endpoint address="" binding="webHttpBinding" contract="Wcfservice1.IService1"> 
      <identity> 
      <dns value="localhost" /> 
      </identity> 
     </endpoint> 
     <endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange" /> 
     </service> 
    </services>  
    <behaviors> 
     <serviceBehaviors>   
     <behavior name="Wcfservice1.ServiceBehavior"> 
      <serviceMetadata httpGetEnabled="true" /> 
      <serviceDebug includeExceptionDetailInFaults="false" /> 
     </behavior> 
     </serviceBehaviors> 
    </behaviors>  
    </system.serviceModel> 
+1

私はあなたの設定で ''エンドポイントの振る舞いを見つけることができません。あなたが 'Service1.svc'ファイルに" WebServiceHostFactory "を指定していない限り、これは見当たりません。 – mthierba

+0

本当に。どこにタグを追加しますか? web.configのコードはVS2008によって生成されます。私はwcf.Canに新しいです。私にいくつかのコードを提供してください。ご協力いただきありがとうございます。 – Henry

+0

<ビヘイビア名= "REST">。そして、エンドポイントからその動作にリンクする必要があります: carlosfigueira

答えて

8

です。お使いの設定ファイルに<behaviors/>要素内にこれを追加します。

<endpointBehaviors> 
    <behavior name="REST"> 
     <webHttp /> 
    </behavior> 
    </endpointBehaviors> 

はその後、このよう <endpoint/>要素を変更:

<endpoint address="" binding="webHttpBinding" behaviorConfiguration="REST" contract="Wcfservice1.IService1"> 
+0

こんにちは、ありがとうございました。エラーの問題は修正されているようですが、今は「メソッドが許可されていません」ダイアログが表示されています。しかし、私の方法はPOSTのみでデータをwcfに送信し、wcfはデータをデータベースに保存します。なぜこのエラーが出るのですか? – Henry

+0

サービス操作に '[WebInvoke]'属性を入れましたか?ここで、WCF 3.5 RESTサービスの作成について紹介します(VS 2008を使用していますか?):http://msdn.microsoft.com/en-us/library/bb412178%28v=VS.90%29.aspx – mthierba

+0

はい私はしました。ここで私のPostメソッドは次のとおりです: [WebInvoke(UriTemplate = "/ SaveData/{param1}、{param2}、{param3}"、Method = "POST")]string SaveData(string param1、string param2、string param3); – Henry

関連する問題