¿Alguien sabe de algún problema con el uso de WCF para exponer una interfaz SOAP para clientes que no son .NET?

StackOverflow https://stackoverflow.com/questions/109083

Pregunta

¿Alguien sabe de algún problema con el uso de WCF para exponer una interfaz SOAP para clientes que no son .NET?Por ejemplo, ¿incompatibilidades con otras bibliotecas SOAP?

Esto es para que la interfaz SOAP pueda quedar expuesta para que terceros la integren con nuestro software.

¿Fue útil?

Solución

Algunas de las áreas problemáticas que he encontrado con WCF:

  • Genera WSDL que se divide en múltiples URL.Es decir, una parte del esquema está en una URL, otra está en una URL diferente, etc.La URL "principal" WSDL (la que tiene solo "? WSDL" después del nombre del servicio) hace referencia a los otros a través de xsd:importelementos.Muchos clientes SOAP (por ejemplo, Delphi anterior a .NET) tienen enormes dificultades con este modismo.Por lo tanto, realmente debe "aplanar" su WSDL para lograr la interoperabilidad en la práctica.Se da una solución aquí.
  • WCF no genera espacios de nombres XML de la misma manera que, por ejemplo, ASMX Web Services.WCF tiene una tendencia a colocar cualquier servicio o contrato de datos en un espacio de nombres de su propia elección.Nuevamente, algunos clientes SOAP tienen dificultades con esto.Puede aumentar su nivel de interoperabilidad agregando un espacio de nombres explícito a sus atributos ServiceContract y DataContract.
  • Muchos clientes de SOAP no manejarán fallas tan bien como los clientes de WCF.Por ejemplo, el código de generación proxy no creará objetos del lado del cliente para las fallas declaradas en el WSDL.Las fallas aún se transmitirán al cliente, por supuesto, pero el cliente tiene que hacer más trabajo para descubrir qué tipo de falla fue.

Otros consejos

Las versiones de la pila de estándares WS-* también pueden ser un problema de interoperabilidad; por ejemplo, la versión de WS-Addressing (2003) compatible con algunas implementaciones de Java, por ejemplo, Oracle BPEL, no es compatible con WCF, que admite las versiones borrador y 1.0 posteriores, pero no la a principios de 2003 uno

En general todo funciona bien.Obviamente dependerá del cliente que esté utilizando; no todos implementan SOAP correctamente.

PD¿Podría reformular su pregunta si espera una respuesta más específica?

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