Pregunta

Me preguntaba cómo un proyecto de cliente en Visual Studio podría hacer referencia a un servicio WCF que no tiene un encuadernador MEX. Cada vez que elimino el enlace MEX predeterminado en cualquier servicio WCF de muestra, las aplicaciones del cliente no pueden encontrar el servicio y en los comentarios generados automáticamente, se recomienda que en el entorno de producción, la vinculación de MEX se elimine. Entonces, ¿cómo se supone que las aplicaciones del cliente encontrarán el servicio y la referencia?

¿Fue útil?

Solución

El punto final Mex es una parte necesaria de los servicios de SOAP WCF. Es lo que permite que los kits de herramientas del cliente retire las clases de proxy WSDL y auto generado. Como señala, sin él, los clientes no tienen forma de obtener la información para consumir el servicio. Si desea que los clientes puedan consumir y encontrar su servicio, debe dejarlo disponible cuando su servicio esté en producción.

Otros consejos

Si tiene acceso a los ensamblajes que contienen los tipos que definen el contrato de servicio, las operaciones y los contratos de datos, entonces puede crear un proxy sobre la marcha usando ChannelFactory. En este caso, no necesitaría recuperar ningún metadato del servicio, ya que ya tiene acceso a toda la información que necesita para llamar al servicio.

Por ejemplo

// Create service proxy on the fly
var factory = new ChannelFactory<IMyServiceContract>("NameOfMyClientEndpointInConfigFile");
var proxy = factory.CreateChannel();

// Create data contract
var requestDataContract = new MyDataContract();

// Call service operation.
var responseDataContract = proxy.MyServiceOperation(requestDataContract);

También ayuda si tiene acceso al archivo de configuración del lado del servicio para que pueda copiar los detalles del punto final de allí en la configuración de su cliente.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top