services run que programming wcf networking soap network-programming network-protocols

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



wcf programming (3)

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

PD: ¿Podrías reformular tu pregunta si esperas una respuesta más específica?

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

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


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

  • Genera WSDL que se divide en varias URL. Es decir, una parte del esquema está en una URL, otra en una URL diferente, etc. La URL WSDL "principal" (la que tiene solo "? WSDL" después del nombre del servicio) hace referencia a las otras a través de xsd:import elements . Muchos clientes SOAP (por ejemplo, Pre.NET Delphi) tienen una dificultad enorme con este modismo. Entonces, realmente debe "aplanar" su WSDL para lograr la interoperabilidad en la práctica. Una solución se da aquí .
  • WCF no genera espacios de nombres XML de la misma manera que, por ejemplo, los servicios web ASMX. WCF tiene la tendencia de colocar cualquier servicio o contrato de datos en un espacio de nombre de su propia elección. Una vez más, algunos clientes de SOAP tienen dificultades con esto. Puede aumentar su nivel de interoperabilidad agregando un espacio de nombre explícito a sus atributos ServiceContract y DataContract.
  • Muchos clientes SOAP no manejarán las fallas tan bien como los clientes 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.

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) admitida por algunas implementaciones de Java, por ejemplo, Oracle BPEL no es compatible con WCF, que admite versiones posteriores pero 1.0 a principios de 2003 uno