2010-06-14 21 views
8

W odniesieniu do mojego previous question, chciałbym wiedzieć, jak wyodrębnić informacje usługi WCF z aplikacji klienckiej, aby wiedzieć, jakie metody/typy są narażone, jeśli usługa udostępnia tylko jeden punkt końcowy który używa webHttpBinding?Pobierz metadane z punktu końcowego webHttpBinding

Podsumowując, w moim poprzednim pytaniu, dowiedziałem się, że punkt końcowy za pomocą webHttpBinding nie zostanie ujawniony w wygenerowanym pliku WSDL, ponieważ byłby to punkt końcowy JSON i po prostu nie jest zgodny.

Odpowiedz

10

WebHttpBinding jest oparta na REST - REST ma wartość , a nie udostępniać metadane, takie jak WSDL/XSD, w przeciwieństwie do SOAP.

W tej chwili nie ma możliwości wyodrębnienia metadanych z punktu końcowego usługi REST. Trwają już prace nad stworzeniem podobnej konstrukcji do REST, nazwanej WADL (Web Application Description Language) - ale to jeszcze nie jest w standardzie.

Na razie, z punktami końcowymi REST, musisz sam to sprawdzić, lub potrzebujesz dokumentacji dostarczonej przez usługodawcę np. statyczna strona HTML lub coś podobnego.

. NET 4 zapewnia pewien poziom automatycznie generowanej strony pomocy - zobacz this blog post lub MSDN docs, aby uzyskać więcej informacji. Ale wciąż nie jest tak blisko sformalizowany i można go interpretować maszynowo jak WSDL/XSD.

0

Zastanawiam się, dlaczego próbki REST mówią, aby w ogóle odsłonić punkt końcowy MEX. Nie jest potrzebny i można go usunąć:

  1. Usuń punkt końcowy MEX z sekcji serwisowej pliku konfiguracyjnego.

  2. Usuń linię obsługującą metadane usługi w sekcji zachowania usługi pliku konfiguracyjnego.

  3. Edycja projektu Visual Studio (zakładając, że biblioteka usługa WCF) i usunąć wiersz:

    <StartArguments> /client:"WcfTestClient.exe”</StartArguments >

Jeśli masz inne usługi spoczynku, na które chcesz opuścić ostatnie 2 części. Musisz usunąć klienta WCF przy wyłączaniu MEX, inaczej będzie on uskarżał się podczas debugowania, jeśli nie będzie mógł wyliczyć żadnych usług w projekcie (niezależnie od tego, czy mają jakieś użyteczne metadane czy nie).

Powiązane problemy