Kennt jemand irgendwelche Probleme mit WCF eine SOAP-Schnittstelle für nicht .NET-Clients zu entlarven?
-
01-07-2019 - |
Frage
Kennt jemand irgendwelche Probleme mit WCF eine SOAP-Schnittstelle für nicht .NET-Clients zu entlarven? Zum Beispiel Inkompatibilitäten mit anderen SOAP-Bibliotheken?
Dies ist so, dass die SOAP-Schnittstelle für Dritte ausgesetzt sein können mit unserer Software zu integrieren.
Lösung
Einige der Problembereiche ich mit WCF begegnet sind:
- Es generiert WSDL, die geteilt wird
über mehrere URLs. Das heißt, ein
Teil des Schemas ist in einer URL,
eine andere ist an einer anderen URL, usw.
Die „main“ WSDL-URL (die mit
nur „? WSDL“ nach dem Dienstnamen)
verweist auf die anderen über
xsd:import
Elemente. Viele SOAP-Clients (zB pre-.NET Delphi) haben enorme Schwierigkeiten mit diesem Idiom. So haben Sie wirklich zu „glätten“ Ihre WSDL, um die Interoperabilität in der Praxis zu erreichen. Eine Lösung ist gegeben hier . - WCF nicht generieren XML-Namespaces die gleiche Art und Weise wie, sagen wir, ASMX web Dienstleistungen. WCF hat eine Tendenz, stellt einen Dienst oder Datenvertrag in einem Namensraum seiner eigenen Wählen. Auch hier haben einige SOAP-Clients Schwierigkeiten mit diesem. Sie können Sie Interoperabilitätsniveau erhöhen, indem eine explizite Namespace zu Ihrem Servicecontract Hinzufügen und Datacontract-Attribute.
- Viele SOAP-Clients nicht verarbeiten Störungen so schön wie WCF-Clients. Zum Beispiel, der Proxy-Generierung Code nicht clientseitige Objekte für das Erstellen Fehler in der WSDL erklärt. Das Fehler werden nach wie vor zu übertragen der Kunde, natürlich, aber die Kunde hat dann mehr Arbeit zu tun herauszufinden, was es ist eine Art von Fehler war.
Andere Tipps
Versionen des WS- * Standards auch stapeln kann ein Kompatibilitätsproblem sein - zum Beispiel die Version von WS-Addressing (2003) durch eine Reihe von Java-Implementierungen unterstützt zB Oracle BPEL wird nicht von WCF unterstützt, die den späteren Entwurf und 1.0-Versionen unterstützt aber nicht die früher 2003 ein
Im Allgemeinen funktioniert alles einwandfrei. Es wird offensichtlich auf dem Client ab, die Sie verwenden -. Nicht jede SOAP richtig implementieren
P. S. Könnten Sie bitte neu formulieren Sie Ihre Frage, wenn Sie für spezifischere Antwort hoffen?