Que tengo que poner en el web.config para crear un servicio WCF que trabaje con soap, xml y json?

 

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.

Etiquetas: ,

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s


A %d blogueros les gusta esto: