2010-12-27 15 views
5

Dağıtılmış wcf hizmeti (.net 4.0). ÇalışılıyorREST modunda WCF servisi nasıl tüketilir?

<endpoint address="" 
      binding="webHttpBinding" 
      bindingNamespace="https://mydomain/myservice/services"  
      behaviorConfiguration="WebBehavior" 
      contract="MyService" /> 

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

web uygulaması hizmete tüketmek web.config benziyor:

Operasyon 'Method1': servisini ararken

<system.serviceModel> 
    <client>  
     <endpoint name="MyServiceEndpointBasicHttp" 
        address="http://myDomain/myService" 
        binding="webHttpBinding" behaviorConfiguration="webBehavior" 
        contract="MyNamespace.IMyService" /> 
    </client> 
    <behaviors> 
     <endpointBehaviors> 
      <behavior name="webBehavior"> 
       <webHttp />  
      </behavior>  
      </endpointBehaviors> 
    </behaviors> 
</system.serviceModel> 

ben istisna alıyorum gibi Servis tarafı yapılandırma görünüyor Sözleşme 'IMyService', herhangi bir sarıcı olmadan serileştirilmiş olmak için birden çok istek gövde parametresini belirtir elemanları. 'un en fazla bir vücut parametresi sarıcı öğeleri olmadan serileştirilebilir. ekstra gövdesini kaldırın ya da WebGetAttribute/WebInvokeAttribute öğesinden BodyStyle özelliğini Sarılmış'a ayarlayın.

bazı googling sonra biz yöntemleri [WebGet(BodyStyle = WebMessageBodyStyle.WrappedRequest, ResponseFormat = WebMessageFormat.Xml)] ayarlanır, ancak ettik hiçbir başarı ...

ilginç bir şey: aynı yöntem adı bile ben diğer yöntemleri arıyorum, istisna içinde her zaman vardır. yöntem adı ve gerekli parametrelerinin girerek tarayıcı ile test ederken ..

Servis araçlarının bu iplik gibi benzer bir sorunla karşılaştıysanız görünüyor

+2

Hizmet yöntemlerinin tanımıyla ** hizmet sözleşmesini ** gösterebilir misiniz? –

cevap

3

... DİNLENME modunda çalışıyor: WCF Service Proxy throws exception when more than one parameter is used in [OperationContract] method

"VS'de Hizmet Ekleme Ekle iletişim kutusunu kullanarak Proxy kodu oluşturmuşsunuz gibi görünüyor. VS ASR iletişim kutusu WCF REST'i tam olarak desteklemiyor, dolayısıyla proxy kodunun [WebInvoke] özniteliği eksik. İstemci proxy'sindeki işlemlere [WebInvoke (BodyStyle = WebMessageBodyStyle.Wrapped)] özniteliğini eklemeyi deneyebilir misiniz? "

+1

Ne demek istiyorsunuz? "İstemci proxy'de işlemlere özellik ekleme"? Hangi dosyaya eklenmeli? – iamCR

İlgili konular