Wie kann ich mich auf eine WSDL-Datei mit einem relativen Pfad?
Ich habe eine WSDL-Datei auf der Festplatte geladen und als web-Verweis. Das problem ist, dass die web-Referenz selbst ist auf der Suche für die WSDL auf meinem Rechner (mit einem absoluten Pfad), die offensichtlich nicht funktionieren auf Mitspieler " - Maschinen.
Ist es möglich, die web-Referenz suchen für die WSDL-mit einem relativen Pfad, oder aus der Ressourcen-Datei? Die WSDL für den Dienst eines Drittanbieters, die wir geändert haben, fügen Sie einige zusätzliche Felder (pro Ihre Empfehlung).
Du musst angemeldet sein, um einen Kommentar abzugeben.
Wenn Sie einen Dienst hinzufügen Referenz auf die WSDL-Datei auf Ihrem Computer, es wird kopiert und in Ihre "Service References" - Ordner in Ihrem Projekt. An diesem Punkt wird die API für Ihren Dienst bestimmt. Es ist eine "Referenz.svcmap" (XML) erstellt, hält die Lage der ursprünglichen Speicherort der WSDL-Datei. Dies ist, so dass Sie update den service in Ihrem Projekt verweisen, wenn die API-änderungen. Aber, auch ohne dass die original-WSDL-Datei können Sie in den code und Ihr team können es verwenden, ohne Problem. Aber, wenn Sie wollen, dass Sie in der Lage sein, um den service aktualisieren, wenn sich die API ändert, dann müssen Sie tatsächlich host, WSDL-Datei in einem öffentlich zugänglichen Platz. In der Regel wird der web service selbst bietet die WSDL-Datei, und Sie würden es nicht haben auf dem file-system. Wenn Sie planen, zu aktualisieren und ändern Sie den web-service verwenden, sollten Sie die Verbindung zu der WSDL-gehostet auf einem Entwicklungs-web-server. Das ist wirklich, wo es hingehört, und nicht eine lokale Datei. Aber, es gibt keinen Grund, Ihrem lokalen Datei-Verweis würde nicht gut funktionieren, bis jemand versucht, Sie zu aktualisieren. Wenn Ihr web service ändert sich nie, du hast kein problem. Wenn Sie es ändern könnte, dann host es irgendwo und verweisen auf eine echte URL.
Meine ersten Tests von Optimierungen in der XML-Referenz.svcmap-Datei, um zu versuchen, für relative Pfad-Verweise nicht funktionieren, aber wenn Sie sich entscheiden, Sie wirklich wollen, um diese zum arbeiten als Ihre Frage beschreibt, ist dies der Ort, um Ihren Versuch.
Mein Vorschlag wäre eine programmatische proxy mit der cmd line tool wsdl.exe oder svcutil.exe zum erstellen der .cs oder .vb-proxy, Sie könnten dann fügen Sie die Lösung.
Dies ermöglicht ohne die wsdl-Datei überhaupt. Finden Sie mehr Informationen hier .NET 2.0 http://msdn.microsoft.com/en-us/library/7h3ystb6(v=vs. 80).aspx
für .NET 3.5 oder höher und svcutil schau mal hier: http://msdn.microsoft.com/en-us/library/aa751905.aspx