2008-12-04 7 views
17

Ich erhalte den folgenden Fehler und könnte einige Hilfe verwenden, die es auflöst. Hat jemand Ideen?Auflösen des Konfigurationsfehlers in WCF AddressFilter Mismatch

Die Nachricht mit 'http://localhost:60078/BidService.svc/Query' kann aufgrund eines AddressFilter-Fehlers am EndpointDispatcher nicht am Empfänger verarbeitet werden. Überprüfen Sie, ob die EndpointAddresses des Senders und des Empfängers übereinstimmen.

Die Client-Konfigurationsdatei ist:

<system.serviceModel> 
    <bindings> 
     <customBinding> 
      <binding name="WebHttpBinding_IBidService"> 
       <textMessageEncoding maxReadPoolSize="64" maxWritePoolSize="16" 
        messageVersion="None" writeEncoding="utf-8"> 
        <readerQuotas maxDepth="32" maxStringContentLength="8192" 
            maxArrayLength="16384" 
         maxBytesPerRead="4096" maxNameTableCharCount="16384" /> 
       </textMessageEncoding> 
        <httpTransport manualAddressing="True" /> 
      </binding> 
     </customBinding> 
    </bindings> 
    <client> 
     <endpoint binding="customBinding" bindingConfiguration="WebHttpBinding_IBidService" 
        behaviorConfiguration="IBidServiceBehavior" 
      contract="myService.IBidService" name="WebHttpBinding_IBidService" /> 
    </client> 
     <behaviors> 
      <endpointBehaviors> 
       <behavior name="IBidServiceBehavior"> 
        <webHttp/> 
       </behavior> 
      </endpointBehaviors> 
     </behaviors> 
</system.serviceModel> 

Mein Servicevertrag ist:

[ServiceContract(Namespace = "http://xxxx.com/services/bids")] 
public interface IBidService 
{ 
    [OperationContract(Action = "*")] 
    [WebGet(RequestFormat = WebMessageFormat.Xml, ResponseFormat = WebMessageFormat.Xml, BodyStyle = WebMessageBodyStyle.Wrapped)] 
    List<BidSummary> Query(); 
} 

Mein Service wie folgt konfiguriert ist:

<service name="xxx.Web.Services.Bids.BidService" 
      behaviorConfiguration="Cutter.Web.Services.Bids.BidServiceBehavior"> 
    <endpoint address="" binding="basicHttpBinding" 
      contract="xxx.Web.Services.Bids.IBidService" />     
    <endpoint address="mex" binding="mexHttpBinding" 
      contract="IMetadataExchange" /> 
</service> 

<behavior name="Cutter.Web.Services.Bids.BidServiceBehavior"> 
    <serviceMetadata httpGetEnabled="true" /> 
    <serviceDebug includeExceptionDetailInFaults="true" /> 
</behavior> 

Das einzige, was ich, dass Sie gelesen Ich brauche das Verhalten von webHttp, das ich hinzugefügt habe. Jede Hilfe wäre willkommen. Ich möchte nur einen einfachen POX-Service

Antwort

30

Ich denke, Sie müssen das WebHttp Verhalten auch die Service-Konfiguration hinzufügen.

+0

Ich dachte schon, aber ich denke nicht, dass es eine Option ist. Es erscheint zumindest nicht in Intellisense. – JoshBerke

+0

Siehe http://blogs.msdn.com/bags/archive/2008/06/09/rest-in-wcf-part-iv-hi-rest-exposing-a-service-via-get-configuring-the- service.aspx – Brian

+1

Dank ich verstehe nicht, warum sie ServiceBehaviors und EndpointBehaviors haben, aber das funktioniert jetzt ... jetzt, um meinen WCF-Client zum Laufen zu bringen. – JoshBerke