2008-12-04 21 views
17

Tôi nhận được lỗi sau và có thể sử dụng một số trợ giúp để giải quyết lỗi đó. Ai có ý tưởng gì không?Giải quyết lỗi cấu hình trong địa chỉ WCFFilter không khớp

Không thể xử lý thư với 'http://localhost:60078/BidService.svc/Query' tại người nhận do không khớp AddressFilter tại EndpointDispatcher. Kiểm tra rằng người gửi và người nhận EndpointAddresses đồng ý.

Các tập tin cấu hình máy khách là:

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

Hợp đồng dịch vụ của tôi là:

[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(); 
} 

Dịch vụ của tôi được cấu hình như sau:

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

Một trong những điều tôi đọc mà bạn cần phải có hành vi webHttp mà tôi đã thêm vào. Bất kỳ trợ giúp sẽ được đánh giá cao. Tôi chỉ muốn một Dịch vụ POX đơn giản

Trả lời

30

Tôi nghĩ rằng bạn cũng cần thêm hành vi webHttp vào cấu hình dịch vụ.

+0

Tôi nghĩ vậy nhưng tôi không nghĩ đó là một lựa chọn. Nó không xuất hiện trong intellisense ít nhất. – JoshBerke

+0

Xem 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

Cảm ơn tôi không hiểu tại sao họ có ServiceBehaviors và EndpointBehaviors nhưng điều này hiện đang làm việc ... bây giờ để có được khách hàng wcf của tôi làm việc. – JoshBerke

Các vấn đề liên quan