Frage

Ich beginne dieses Wiki Best Practices zur Erstellung interoperable Web Services (nicht Clients) in WCF zu sammeln. Bitte teilen Sie Ihre Erfahrungen, wenn Sie irgendeine Funktion kennen, die im Allgemeinen nicht kompatibel ist oder die nicht kompatibel mit bestimmten Plattform.

War es hilfreich?

Lösung

Ziemlich einfach:

  • vermeiden Sie alle .NET Besonderheiten wie Ausnahmen (verwandeln sie in SOAP-Fehler)

  • verwenden Sie keine Bindung, den Start mit net wie NetTcp, netNamedPipes, NetMsmq usw. - Verwendung wsHttpBinding für die sicheren WS- * Dienstleistungen und basicHttpBinding für maximale Reichweite / Kompatibilität selbst mit den seltsamsten Client-Plattformen

  • nicht die NetDataContractSerializer verwenden

Andere Tipps

empfehle ich WCF REST mehrere Serialisierungsformaten aussetzt, auf jeden Fall xml für den Anfang.

Allgemeine Interoperabilität:

  • Es werden nur HTTP und HTTPS-Transportkanäle sind vollständig kompatibel
  • Verhandlung von Sicherheitsdaten ist nicht kompatibel (negotiateServiceCredential in Nachrichtensicherheit). Es verwendet TLSNego oder SPNego Protokolle, die von anderen Plattformen nicht immer unterstützt werden.
  • HTTP-Streaming kann Probleme verursachen als auch
  • binäre Codierung über HTTP-Kanal ist nicht kompatibel
  • OleTransactions sind nicht kompatibel
  • Verwenden Service Sicherheitskontext mit Sorgfalt (estabilishSecurityContext in Nachrichtensicherheit). Es verwendet WS-Secure Conversation-Protokoll, das auf einigen Plattformen nicht verfügbar ist

Edit:

  • WSDualHttpBinding und CompositeDuplexBindingElement sind nicht kompatibel
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top