2017-05-24 3 views
0

Ich habe schon gelesen, das nützlich Thread über SOAP and WSDL in .NETSOAP-Client in .NET Referenzierung WSDL bestehenden

Ich versuche, ein C# SOAP-Client zu bauen, habe ich die Anweisungen befolgt und habe einen „Dienstverweis“ zu Die WSDL, aber der clientseitige Proxy, der generiert werden soll, wird nicht generiert. Ich kann nur Klassen, Schnittstellen, Enums, etc ... sehen. Ich kann nichts erklären. Ich kann einfach nicht:

MyService.MyWebServiceSoapClient ws = new MyService.MyWebServiceSoapClient(); 

Weil ich keinen Client zu initialisieren habe. Ich kann nicht verstehen

Also habe ich versucht, eine Entwickler-Konsole zu öffnen und

wsdl.exe <url_to_my_wsdl> 

aber es hat einen Fehler zurückgegeben eingeben. Etwas auf der Linie:

Es ist unmöglich, Operation 'someOperation' zu importieren.
Elementparameter, die zum Namespace urn gehören: mein: Namespace, importiert in zwei verschiedenen Kontexten: PrimitiveMapping, MembersMapping.

Irgendeine Idee? Vielen Dank.

Antwort

0

Ich habe die Lösung für dieses Problem selbst gefunden. Nach vielen Trial-and-Error-Modifikationen kam ich zu dem Schluss, dass das Wort "parameters" in der .NET-Umgebung nicht sehr willkommen ist. So habe ich es mit „params“ und jetzt wird es richtig importiert von wsdl.exe

So Teil meiner früheren WSDL war so etwas wie:

<wsdl:message name="isServiceOnline"> 
    <wsdl:part name="parameters" element="MyElement"></wsdl:part> 
</wsdl:message> 

Die neue Version davon ist:

<wsdl:message name="isServiceOnline"> 
    <wsdl:part name="params" element="MyElement"></wsdl:part> 
</wsdl:message>