Moja aplikacja musi komunikować się z usługą sieciową, która nie ma definicji WSDL online. Deweloperzy dostarczyli mi jednak plik WSDL.
Z publicznym WSDL Visual Studio może wygenerować ten kod za pomocą kreatora Service Reference. Ale wydaje się, że nie działa bez publicznego WSDL.
Jak wygenerować kod do komunikacji z tą usługą sieci Web przy użyciu tego pliku WSDL?
Użycie WSDL.exe nie zadziałało (pokazał mi błąd dotyczący brakującego typu), ale udało mi się kliknąć prawym przyciskiem myszy projekt w programie VS i wybrać opcję „Dodaj odwołanie do usługi”. Wpisałem ścieżkę do pliku wsdl w polu Adres i nacisnąłem „Idź”. Wydawało się, że udało się znaleźć wszystkie odpowiednie typy i dodać klasy bezpośrednio do mojego projektu.
źródło
Na marginesie: jeśli masz wszystkie pliki lokalnie (nie tylko plik wsdl, ale także pliki xsd), możesz wywołać wsdl.exe w ten sposób:
W ten sposób wsdl.exe może lokalnie rozwiązać wszystkie zależności i poprawnie generuje klasę proxy.
Może to komuś zaoszczędzi trochę czasu - rozwiązuje błąd „brakujący typ”, gdy usługa nie jest dostępna online.
źródło
Istnieje dokument Microsoft Doc do tworzenia
WCF
serwera proxy z wiersza poleceń.Możesz znaleźć lokalną kopię programu
wsdl.exe
w lokalizacji podobnej do tej:C:\Program Files (x86)\Microsoft SDKs\Windows\v10.0A\bin\NETFX 4.6.1 Tools
( Dowiedz się więcej tutaj )W końcu Twój
Command
powinien wyglądać podobnie do tego:źródło
Wypróbuj narzędzie klasy WSDL To Proxy dostarczane z zestawem .NET Framework SDK. Nigdy wcześniej go nie używałem, ale z pewnością wygląda na to, czego potrzebujesz.
źródło
zapisz plik na dysku, a następnie użyj następującego adresu jako adresu URL:
źródło
Ponieważ prawdziwy adres URL powiązania usługi sieci Web znajduje się w pliku, możesz wykonać te proste kroki na komputerze lokalnym:
1) Zapisz plik na komputerze lokalnym, na przykład:
2) W programie Visual Studio kliknij prawym przyciskiem myszy projekt> wybierz opcję Dodaj odwołanie do sieci Web, otworzy się okno dialogowe.
3) W polu adresu URL Skopiuj lokalną lokalizację pliku powyżej C: \ Documents and Settings [użytkownik] \ Desktop \ Webservice1.asmx, kliknij przycisk Dalej
4) Teraz pojawią się funkcje, wybierz swoją nazwę dla odniesienia, kliknij dodaj odniesienie
5) Gotowe! możesz zacząć używać go jako przestrzeni nazw w swojej aplikacji nie martw się, że użyłeś pliku lokalnego, bo i tak prawdziwy adres URL dla usługi znajduje się w pliku w sekcji Binding
źródło