Problema: Quiero crear un servicio web con WCF con 3 endpoints, uno para soap, otro para json y otro para xml, y no se que tengo que especificar en el webconfig.
Solucion: Tras crear con VS nuestro proyecto WCF, ya tendremos el primer endopint creado para soap. Para los otros dos endpoints habria que añadir lo sieguiente:
Dentro de <system.serviceModel> añadimos la seccion <bindings> (si no esta ya)
<bindings>
<webHttpBinding>
<binding name="webBinding">
</binding>
</webHttpBinding>
</bindings>
En la seccion <services>, dentro del <service> que ya tendremos creado (y que ya contara con algun endpoint) añadimos dos mas
<endpoint name="xml" address="xml" binding="webHttpBinding" bindingConfiguration="webBinding" behaviorConfiguration="XMLBehavior" contract="IContractService"/>
<endpoint name="json" address="json" binding="webHttpBinding" bindingConfiguration="webBinding" behaviorConfiguration="JSONBehavior" contract="IContractService"/>
Finalmente en la seccion <behaviors> añadimos
<endpointBehaviors>
<behavior name="XMLBehavior">
<webHttp/>
</behavior>
<behavior name="JSONBehavior">
<enableWebScript/>
</behavior>
</endpointBehaviors>
Por ultimo, si las llamadas xml las queremos hacer usando el metodo POST, deberemos marcar los metodos en cuestion del contrato con el atributo [WebInvoke(Method = “POST”)]. Ademas, tendremos que añadir una referencia a System.ServiceModel.Web en nuestro proyecto.