2009-10-30 24 views
11

Tengo un sitio web con un servicio WCF habilitado para Silverlight. El servicio funciona bien, y puedo navegar a la página WSDL en el navegador sin problemas.Crear un cliente WCF programáticamente

Ahora, intento crear un cliente en una DLL. Sin embargo, necesito crear el cliente completo mediante programación, porque se llama en una DLL, que por cualquier razón (¿por diseño?) No leerá la sección de ServiceModel desde su propio archivo de configuración.

Así que aquí es mi código:

Dim endp As EndpointAddress = New EndpointAddress("http://www.mydomain.com/licensing/lic.svc") 
Dim bind As WSHttpBinding = New WSHttpBinding() 
Dim svc = New lnt.licClient(bind, endp) 
Dim rsp = svc.CheckIt(key) 

Pero cuando llamo el método svc.CheckIt, me sale el siguiente error:

Content Type application/soap+xml; charset=utf-8 was not supported by service http://www.mydomain.com/licensing/lic.svc. 
The client and service bindings may be mismatched. 
{"The remote server returned an error: (415) Cannot process the message because the content type 'application/soap+xml; charset=utf-8' was not the expected type 'application/soap+msbin1'.."} 

¿Cómo correctamente crear mi cliente para que éstos están "emparejados" correctamente?
Gracias de antemano !!!

+1

Sivlerlight no es compatible con WSHttpBinding. http://msdn.microsoft.com/en-us/library/cc896571(VS.95).aspx –

Respuesta

11

Ah --- lo encontré. La sección ServiceModel en el sitio web web.config se estableció en customBinding. Lo cambió para que coincidiera con lo que el cliente estaba enviando, y ahora funciona muy bien.

+0

También asegúrese de que su ** Contrato ** coincida en el punto final del servidor para que se utilicen las 'personalBindings' apropiadas. – SliverNinja

3

Me encontré con este mismo problema. Más específicamente, mi solución fue actualizar el tipo de enlaces que estaba usando. Estaba usando wsHttpBindings en lugar de basicHttpBindings. Esto estaba causando fallas ya que wsHttpBindings usa SOAP 1.2 mientras que basicHttpBindings usa SOAP 1.1 y el servicio que estaba usando requirió SOAP 1.1

0

Tuve el mismo error. El servicio se estaba compilando, la aplicación del cliente también. La referencia de servicio en la aplicación del cliente estaba actualizando la referencia con éxito. Intenté eliminar y agregar referencia una vez más y no fue útil. El problema estaba en la interfaz eliminada en el servicio web.

Cuestiones relacionadas