Ich habe eine WSDL von Hand erstellt, die nur eine Operation ohne Eingabeparameter und ohne Ausgabeparameter hat.
Ich erhalte folgenden Fehler, wenn ich versuche, einen Client aus dieser WSDL zu erstellen:
Kann wsdl: portType nicht importieren Detail: Beim Ausführen einer WSDL-Importerweiterung wurde eine Ausnahme ausgelöst: System.ServiceModel.Description.DataContractSerializerMessageContractImporter Fehler: Schema mit Zielnamespace ' Ссылка wurde nicht gefunden. XPath to Error Quelle: // wsdl: definitions [@ targetNamespace = ' Ссылка '] / wsdl: portType [@ name = 'GAMEAssociateIntf'] C: \ toolbox \ BlueTest \ BloodRedTest \ BloodRedTest \ Service
Das types
(im Client zu verwenden) muss aus dem in der WSDL vorhandenen XML generiert werden. Ich denke, beim Hinzufügen der Dienstreferenz konnte das Tool aufgrund eines Fehlers im XML-Code nicht erstellt werden. Das xsd scheint das Problem zu sein.
Welche Änderung muss in der WSDL vorgenommen werden, um den Proxy zu erstellen?
Hinweis: Ich versuche, die XML-Typen einzuschließen, die in WSDL selbst definiert sind. [Ich brauche keine separate Datei zur Schemadealition]
WSDL
%Vor%REFERENZEN :
Ich habe Inline-Schema . Danke auch an @Indoknight. Der Arbeitsvertrag WSDL ist unten angegeben.
Hinweis1: Das xsd-Präfix und targetNamespace sind in dem Schema enthalten, das in wsdl type
Hinweis2: nillable="true" wird für den in der Antwortnachricht verwendeten Typ angewendet
Hinweis3: Wenn Sie die folgende Ausnahme erhalten, vergewissern Sie sich, dass soapAction
in der Vertrags-WSDL und in der vom WCF-Dienst generierten WSDL identisch ist. Einige Tools, die zum Generieren von Dienstcode verwendet werden, können die SOAP-Aktion nach eigenem Ermessen ändern.
Fehlercode: a: ActionNotSupported
Faultstring: Die Nachricht mit Action ' Ссылка kann nicht beim Empfänger verarbeitet werden , aufgrund eines ContractFilter-Mismatch am EndpointDispatcher. Dies kann entweder auf eine Vertragsfehlanpassung (nicht übereinstimmende Aktionen zwischen Sender und Empfänger) oder auf eine Bindungs- / Sicherheitskonflikt zwischen dem Absender und dem Empfänger zurückzuführen sein. Überprüfen Sie, ob Absender und Empfänger den gleichen Vertrag und die gleiche Bindung haben (einschließlich Sicherheitsanforderungen, z. B. Nachricht, Transport, Keine).
SOAP-Aktion - Vertrags-WSDL
%Vor%SOAP-Aktion - Generierte WSDL
%Vor%Vertrags-WSDL
%Vor%Anfrage
%Vor%Antwort
%Vor%Ich habe einige Zeit damit verbracht, Probleme herauszufinden. Ihre & lt; Typen & gt; Abschnitt der WSDL ist falsch, es sollte wie folgt sein. Damit kann ich nun clientseitige Artefakte in Java generieren.
%Vor%AKTUALISIEREN
Basierend auf der folgenden Konversation. Ein Attribut nillable
hinzugefügt.
Anfrage
%Vor%Antwort
%Vor%wsi.org hat eine Reihe von Validierungswerkzeugen, die sicherlich einen Versuch wert wären.
Der zusätzliche Nutzen der Verwendung dieser Tools besteht darin, dass Sie dann tatsächlich die Einhaltung der WSDL-Spezifikation (en) beanspruchen können.
Tags und Links wcf xsd web-services wsdl contract-first