Est-ce que quelqu'un connaît des problèmes d'utilisation de WCF pour exposer une interface SOAP pour des clients autres que .NET?

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

Question

Quelqu'un sait-il que l'utilisation de WCF pour exposer une interface SOAP à des clients non .NET pose un problème? Par exemple, des incompatibilités avec d’autres bibliothèques SOAP?

Cela permettra à des tiers de s’intégrer à notre logiciel dans l’interface SOAP.

Était-ce utile?

La solution

Certains des problèmes rencontrés avec WCF:

  • Il génère un WSDL divisé sur plusieurs URL. C'est un une partie du schéma est à une URL, un autre est à une URL différente, etc. Le " principal " URL WSDL (celle avec il suffit de "? WSDL " après le nom du service) référence les autres via xsd: import éléments. Beaucoup de clients SOAP (par exemple, pre-.NET Delphi) ont d'énormes difficultés avec cet idiome. Donc, vous devez vraiment "aplatir" votre WSDL afin de réaliser l’interopérabilité dans la pratique. Une solution est donnée à ici .
  • WCF ne génère pas d'espaces de noms XML de la même manière que, par exemple, ASMX Web prestations de service. WCF a tendance à passer un contrat de service ou de données dans un espace de noms propre choisir. Encore une fois, certains clients SOAP ont des difficultés avec cela. Vous pouvez augmenter votre niveau d'interopérabilité en ajoutant un espace de nom explicite à vos attributs ServiceContract et DataContract.
  • De nombreux clients SOAP ne gèrent pas défauts aussi bien que les clients WCF. Par exemple, le code de génération de proxy ne sera pas créer des objets côté client pour la les fautes déclarées dans le WSDL. le les défauts seront toujours transmis à le client, bien sûr, mais le le client doit alors faire plus de travail pour comprendre quel genre de faute il était.

Autres conseils

Les versions

de la pile de normes WS- * peuvent également poser un problème d'interopérabilité - par exemple, la version de WS-Addressing (2003) prise en charge par certaines implémentations java, par exemple Oracle BPEL n'est pas prise en charge par WCF qui prend en charge les versions ultérieures et 1.0. mais pas celui de 2003

En général, tout fonctionne bien. Cela dépendra évidemment du client que vous utilisez. Tous ne mettent pas correctement en œuvre SOAP.

P.S. Pourriez-vous reformuler votre question si vous souhaitez une réponse plus précise?

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top