Do udostępniania opisu serwisu możemy wykorzystać WSDL (Web Services Description Language) lub MEX (Metadata Exchange Endpoint). Jedno jak i drugie rozwiązanie tworzy opis serwisu - ten sam. Różnica polega na tym, iż w przypadku MEX tworzony jest specjalny endpoint, który zapytany o opis serwisu zwraca opis jako jedna wiadomość SOAP.
Podsumujmy
WSDL:
- dokument WSDL dostępny jest poprzez wysłanie zapytania HTTP GET - wyświetlić możemy go w przeglądarce
- dokument WSDL może zawierać odnośniki do innych dokumentów (np. schemy) - podział na wiele dokumentów
MEX:
- tworzony jest specjalny endpoint udostępniający informacje w formacie SOAP
- jako odpowiedź otrzymujemy jeden dokument zawierający wszystkie dane o serwisie - brak podziału na wiele dokumentów jak w przypadku WSDL
- pozwala pobrać klientowi informacje o udostępnianych endpointach co pozwala uniknąć przechowywania konfiguracji ich w konfiguracji aplikacji
- możliwość pobrania za pomocą tcp, http, https, named pipes
Kiedy użyć MEX a kiedy WSDL?
WSDL generalnie używamy kiedy nasz serwis korzysta z komunikacji za pomocą HTTP. W przypadku użycia tcp, named pipes czy też innego protokołu - udostępniamy opis serwisu za pomocą MEX.
Większość napisanych już serwisów korzysta z WSDL - standard ten istnieje na rynku już od dłuższego czasu.
Znając różnice zobaczmy w jaki sposób aktywować udostępnianie WSDL oraz MEX.
WSDL:
W przypadku tworzenia projektu na starcie obsługa WSDL jest włączona domyślnie - nie jest wymagana żadna dodatkowa konfiguracja. Wpis który mówi o aktywności WSDL jest następujący:
<serviceMetadata httpGetEnabled="true" httpsGetEnabled="true"/>
Brak potrzeby definiowania konfiguracji zawdzięczamy domyślnym endpointom, które zostały wprowadzone w wersji 4.0 frameworka.
MEX
Podobnie jak powyższy także nie wymaga żadnej dodatkowej konfiguracji - dostępny jest domyślnie. Jeżeli chcielibyśmy hostować aplikację z udostępnianiem MEX w aplikacji konsolowej, moglibyśmy to zrobić w następujący sposób:
Code:
Kod został zaczerpnięty z dokumentacji MSDN.
Podsumowując: WCF umożliwia udostępnianie metadanych na dwa sposoby:
Brak komentarzy:
Prześlij komentarz