Servizio wcf distribuito (.net 4.0). config lato servizio si presenta come:Come si consuma il servizio WCF in modalità REST?
<endpoint address=""
binding="webHttpBinding"
bindingNamespace="https://mydomain/myservice/services"
behaviorConfiguration="WebBehavior"
contract="MyService" />
<endpointBehaviors>
<behavior name="WebBehavior">
<webHttp />
</behavior>
</endpointBehaviors>
Cercando consumano servizio nel web app, web.config
assomiglia:
<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>
sto ottenendo un'eccezione quando si chiama il servizio:
operazione 'Method1' del contratto 'IMyService' specifica più parametri del corpo di richiesta per essere serializzati senza alcun wrapper elementi. Al massimo un parametro del corpo può essere serializzato senza elementi wrapper . Rimuovere i parametri aggiuntivi del corpo o impostare la proprietà BodyStyle su WebGetAttribute/WebInvokeAttribute su Avvolto.
Dopo un po 'googling, abbiamo impostato [WebGet(BodyStyle = WebMessageBodyStyle.WrappedRequest, ResponseFormat = WebMessageFormat.Xml)]
sui metodi, ma senza successo ...
Una cosa interessante: C'è sempre lo stesso nome del metodo in deroga, anche io sto chiamando altri metodi. ..
servizio funziona bene in modalità REST durante il test con il browser inserendo nome del metodo e paramaters necessarie ...
Puoi mostrarci il ** contratto di servizio ** con la definizione dei tuoi metodi di servizio? –