2009-08-19 24 views
87

Potrzebuję skonsumować usługę sieci Web. Wysłali mi plik WSDL. Co należy zrobić, aby dodać go do mojej witryny i zacząć używać go jako serwera proxy. (Jeśli umieściłem go w katalogu wirtualnym, można go znaleźć, ale czy zapewnia on połączenie z prawdziwą usługą sieciową?)Jak korzystać z WSDL

+8

Cóż, upvoted ponieważ jest to pytanie, które myślę, że innym użytkownikom tutaj skorzystają widząc odpowiedź. Szukałem tego dokładnego problemu i cieszę się, że znalazłem go tutaj. – schizoid04

Odpowiedz

105

Wystrzeliłbym Visual Studio 2008, utworzyłem projekt internetowy (lub aplikację konsolową - nie ma znaczenia), a następnie kliknę prawym przyciskiem myszy na projekcie i wybieram "Dodaj referencje serwisowe" z menu kontekstowego.

Wprowadź ścieżkę pliku i nazwę w polu i zaimportuj plik WSDL - spowoduje to wygenerowanie prostego, bardzo prostego klienta WCF do użycia. W wygenerowanym kodzie należy znaleźć klasę "YourservicenameClient", która powinna zawierać metody dla każdej ze zdefiniowanych metod zawartych w umowie WSDL.

Powtórz klienta i wywołaj metody, do których chcesz zadzwonić - to wszystko!

YourServiceClient client = new YourServiceClient(); 
client.SayHello("World!"); 

Jeśli trzeba określić zdalnego adresu URL (nie używając stworzonej przez domyślne), można łatwo zrobić to w konstruktorze klienta Proxy:

YourServiceClient client = new YourServiceClient("configName", "remoteURL"); 

gdzie configName jest nazwą punktu końcowego do użycia (użyjesz wszystkich ustawień oprócz adresu URL), a remoteURL jest ciągiem reprezentującym adres URL do połączenia (zamiast tego, który znajduje się w konfiguracji).

+0

To działa dobrze. Tylko jedno pytanie, jeśli mam plik wsdl na moim komputerze i dodaję odniesienie do tego pliku. Podczas wykonywania adresu URL trafia on w hosta usługi internetowej, czy też muszę określić Binding i EndPoint? – jmayor

+1

To zależy od Ciebie - domyślnie kod utworzony dla proxy klienta będzie zawierał adres URL zawarty w pliku WSDL - jeśli musisz przejść do innego adresu URL, musisz go określić samodzielnie. –

+0

Dlaczego to takie proste? Czy nie ma haczyka? : p Dzięki! – Odys

34

W studio graficznym.

  • Utwórz lub otwórz projekt.
  • Kliknij prawym przyciskiem myszy projekt z eksploratora rozwiązań.
  • Wybierz "Dodaj rozszerzenie usługi"
  • Wklej adres z otrzymanym WSDL.
  • Kliknij OK.

Jeśli nie ma błędów, powinieneś widzieć referencję do usługi w przeglądarce obiektów i wszystkie powiązane metody.

+8

<3 Visual Studio .. Tak, to naprawdę takie proste :) – cwap

+3

OP nie ma adresu, ale plik. –

+7

wpisz ścieżkę/nazwę pliku dla pliku WSDL ...... –

13

Użyj WSDL.EXE utility do wygenerowania proxy usługi Web Service z WSDL.

Dostaniesz # plik źródłowy długo C, który zawiera klasy, która wygląda tak:

/// <remarks/> 
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")] 
[System.Diagnostics.DebuggerStepThroughAttribute()] 
[System.ComponentModel.DesignerCategoryAttribute("code")] 
[System.Web.Services.WebServiceBindingAttribute(Name="MyService", Namespace="http://myservice.com/myservice")] 
public partial class MyService : System.Web.Services.Protocols.SoapHttpClientProtocol { 
    ... 
} 

W swojej stronie klienta, Web-usługi pracochłonne kod:

  1. instancję MyService .
  2. ustawić jego adres URL nieruchomość
  3. metody invoke sieci
+4

To tworzy "staromodną" usługę sieciową ASMX - są one przestarzałe - należy używać WCF zamiast obecnie –

+1

-1 w celu zachęcenia do korzystania ze starszej technologii. –

+13

+1, inne rozwiązania NIE DZIAŁAJĄ NA MNIE. – Nuzzolilo