Pregunta

Necesito usar un servicio web que tenga los siguientes requisitos:

  • https/ssl
  • Mtom
  • El usuario/contraseña debe especificarse en el encabezado SOAP
  • 1 archivo binario (posiblemente grande) como carga útil

No controlo este servicio web y necesito consumirlo. Como soy nuevo en WCF, necesito ayuda con algunas cosas básicas. Mis preguntas son:

  1. Cuando agrego una referencia de servicio en VS2010, obtengo un basichttpbinding en la configuración. Creo que debo usar wshttpbinding, ¿estoy en lo cierto? ¿Dónde/cómo lo cambio/configuro? Directamente en la configuración?
  2. ¿Cómo configurar mi cliente para especificar el usuario/contraseña en el encabezado SOAP?
  3. ¿Cómo "adjuntar" un archivo binario?

Gracias

¿Fue útil?

Solución

Si agrega referencia de servicio y no recibe ningún error, advertencia o cualquier sección comentada en el archivo de configuración que ya tenga lo que necesita. Solo usa el código que obtienes. La referencia creará proxy del cliente para usted y esto tendrá métodos necesarios para pasar datos binarios al servidor. Proxy también permite configurar las credenciales del cliente:

var proxy = new ServiceContractNameClient();
proxy.ClientCredentials.UserName.Name = "userName";
proxy.ClientCredentials.UserName.Password = "pwd";
var result = proxy.SendSomeVeryLargeData(new SomeDataContract() { Data = yourData });

Basichttpbinding admite ambas credenciales en encabezado de jabón y codificación MTOM.

Otros consejos

Por lo general, cuando consume un servicio web, no necesita cambiar la vinculación.

Es posible que deba especificar las credenciales del cliente.

   Service1Client service = new Service1Client();
   service.ClientCredentials.UserName.UserName = "user";
   service.ClientCredentials.UserName.Password = "pass";

Ver este artículo.

Encontré un buen artículo sobre cómo configurar el cliente MTOM con WCF. Este es un tutorial muy básico. Espero que ayude.

http://mstecharchitect.blogspot.com/2009/01/wcf-with-mtom-message-ingoding.html

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