Meine Anwendung muss mit einem Webdienst kommunizieren, der keine Online-WSDL-Definition hat. Die Entwickler haben mir jedoch eine WSDL-Datei zur Verfügung gestellt.
Mit einer öffentlichen WSDL kann Visual Studio diesen Code mithilfe des Dienstreferenz-Assistenten für mich generieren. Aber ohne eine öffentliche WSDL scheint es nicht zu funktionieren.
Wie generiere ich den Code für die Kommunikation mit diesem Webdienst mithilfe dieser WSDL-Datei?
Die Verwendung von WSDL.exe funktionierte bei mir nicht (gab mir einen Fehler bezüglich eines fehlenden Typs), aber ich konnte mit der rechten Maustaste auf mein Projekt in VS klicken und "Dienstreferenz hinzufügen" auswählen. Ich habe den Pfad zur wsdl-Datei in das Feld Adresse eingegeben und auf "Los" geklickt. Das schien in der Lage zu sein, alle richtigen Typen zu finden und die Klassen direkt zu meinem Projekt hinzuzufügen.
quelle
Nebenbei bemerkt: Wenn Sie alle Dateien lokal haben (nicht nur die WSDL-Datei, sondern auch die XSD-Dateien), können Sie wsdl.exe auf folgende Weise aufrufen:
Auf diese Weise kann wsdl.exe alle Abhängigkeiten lokal auflösen und die Proxy-Klasse korrekt generieren.
Vielleicht spart es jemandem etwas Zeit - es löst den "fehlenden Typ" -Fehler, wenn der Dienst online nicht verfügbar ist.
quelle
Probieren Sie das mit dem .NET Framework SDK gelieferte WSDL To Proxy-Klassentool aus . Ich habe es noch nie benutzt, aber es sieht auf jeden Fall so aus, wie Sie es brauchen.
quelle
Es gibt ein Microsoft-Dokument zum Erstellen Ihres
WCF
Proxys über die Befehlszeile.Sie finden Ihre lokale Kopie
wsdl.exe
an einem ähnlichen Ort:C:\Program Files (x86)\Microsoft SDKs\Windows\v10.0A\bin\NETFX 4.6.1 Tools
( Weitere Informationen hier )Am Ende
Command
sollte Ihr ungefähr so aussehen:quelle
Speichern Sie die Datei auf Ihrer Festplatte und verwenden Sie Folgendes als URL:
quelle
Da sich die wahre Bindungs-URL für den Webdienst in der Datei befindet, können Sie diese einfachen Schritte von Ihrem lokalen Computer aus ausführen:
1) Speichern Sie die Datei auf Ihrem lokalen Computer, zum Beispiel:
2) Klicken Sie in Visual Studio mit der rechten Maustaste auf Ihr Projekt> Wählen Sie Webreferenz hinzufügen. Ein Dialogfeld wird geöffnet.
3) Kopieren Sie im URL-Feld den lokalen Dateispeicherort über C: \ Dokumente und Einstellungen [Benutzer] \ Desktop \ Webservice1.asmx und klicken Sie auf Weiter
4) Nun werden die Funktionen angezeigt. Wählen Sie Ihren Namen für die Referenz. Klicken Sie auf Referenz hinzufügen
5) Du bist fertig! Sie können es als Namespace in Ihrer Anwendung verwenden. Machen Sie sich keine Sorgen, dass Sie eine lokale Datei verwendet haben, da sich die wahre URL für den Dienst ohnehin in der Datei im Abschnitt Bindung befindet
quelle