Question

Je commence ce Wiki pour recueillir les meilleures pratiques sur la création de services Web interopérables (non clients) dans WCF. S'il vous plaît partager votre expérience si vous connaissez un élément qui ne sont généralement pas interopérables ou qui ne sont pas interopérables avec la plate-forme spécifique.

Était-ce utile?

La solution

Assez simple:

  • éviter les spécificités .NET comme des exceptions (les transformer en défauts SOAP)

  • ne pas utiliser toute liaison qui commencent par net comme NetTcp, netNamedPipes, netMsmq et ainsi de suite - pour une utilisation wsHttpBinding WS- * services sécurisés et basicHttpBinding pour atteindre / compatibilité maximale avec même les plus étranges plates-formes client

  • ne pas utiliser le NetDataContractSerializer

Autres conseils

Je recommande WCF REST exposer plusieurs formats de sérialisation, certainement xml pour commencer.

interopérabilité générale:

  • uniquement HTTP et HTTPS canaux de transport sont interopérables
  • La négociation des titres de compétence de sécurité ne sont pas interopérables (negotiateServiceCredential dans la sécurité des messages). Il utilise des protocoles TLSNego ou SPNEGO qui ne sont pas toujours prises en charge par d'autres plates-formes.
  • HTTP streaming peut causer des problèmes aussi bien
  • Binary encodage sur le canal HTTP n'est pas interopérable
  • OleTransactions ne sont pas interopérables
  • Utiliser un contexte de sécurité du service des soins (estabilishSecurityContext dans la sécurité des messages). Il utilise le protocole de conversation WS-Secure qui ne sont pas disponibles sur certaines plates-formes

Modifier

  • WSDualHttpBinding et CompositeDuplexBindingElement ne sont pas interopérables
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top