Ich habe jahrelang Webdienste erstellt und verwendet und war immer in der Lage, mit Visual Studio eine Dienstreferenz vom Client zu erstellen. Ich habe einen Drittanbieter-Service, mit dem ich arbeiten muss, und sie weigern sich, ihre Sicherheit zu öffnen, damit ich die WSDL sehen und die Service-Referenz erstellen kann. Es ist ein öffentlich zugänglicher Dienst, daher sehe ich keine Notwendigkeit für dieses Sicherheitsniveau, aber es ist das, was es ist.
Ich weiß, dass dies eine n00b-Frage ist, und ich schäme mich, sie zu stellen. Aber wie erstelle ich die entsprechenden Service-Referenzinformationen in meinem Client, wenn mir nur eine physische Kopie der WSDL zur Verfügung steht, die der Client mir per E-Mail gesendet hat? Die web.config ändert sich, die Objektschicht über den SOAP-Daten usw. Genau wie bei einer automatisierten Dienstreferenz möchte ich nur eine Verbindung zum Dienst herstellen und ihn mit den definierten Objekten verwenden.
Der Drittanbieter-Service ist, soweit ich das beurteilen kann, nicht WCF, sondern SOAP. Ich benutze übrigens VS 2010. Vielen Dank im Voraus, Ken
quelle
Antworten:
Dies kann die einfachste Methode sein
quelle
Es gibt zwei Möglichkeiten, dies zu tun. Sie können entweder die IDE verwenden, um eine WSDL zu generieren, oder Sie können dies über die Befehlszeile tun.
1. So erstellen Sie es über die IDE:
Klicken Sie im Lösungs-Explorer-Bereich mit der rechten Maustaste auf das Projekt, zu dem Sie den Service hinzufügen möchten:
Anschließend können Sie den Pfad zu Ihrer Service-WSDL eingeben und auf Los klicken:
2. So erstellen Sie es über die Befehlszeile:
Öffnen Sie eine VS 2010-Eingabeaufforderung (Programme -> Visual Studio 2010 -> Visual Studio-Tools).
Führen Sie dann Folgendes aus:
WSDL.exe gibt dann eine CS-Datei für Ihren Verbrauch aus.
Wenn Sie andere Abhängigkeiten haben, die Sie mit der Datei erhalten haben, z. B. xsds, fügen Sie diese der Argumentliste hinzu:
Wenn Sie einen VB-Ausgang benötigen, verwenden Sie
/language:VB
zusätzlich zu/verbose
.quelle
import
in gefolgt von einem schemaLocation sehen, das auf einen xsd-Pfad verweist, benötigen Sie auch diese xsd-Dateien.