2012-04-10 16 views
6

Czy ktoś mógłby być na tyle uprzejmy, aby pokazać mi najlepszy sposób określenia, czy usługa sieciowa (ASP.NET) istnieje pod danym adresem URL?Sprawdź, czy istnieje serwis WWW

Zakładam, że podejście będzie czymś w rodzaju wysyłania żądania przy użyciu System.Net.Webclient, ale jak mogę określić, czy jest to poprawna usługa sieciowa i jaki rodzaj żądania powinienem wydać?

EDYCJA: Aby dodać nieco więcej kontekstu, określam, czy istnieje usługa sieciowa, ponieważ próbuję utworzyć ogólne narzędzie, które używa arbitralnych usług sieciowych.

+0

w celu wykorzystania usługi internetowej, narzędzie będzie musiała WSDL dostarczonego przez użytkownika. Korzystając z WSDL, możesz określić, które funkcje ma usługa internetowa i możesz wywoływać je automatycznie. – adt

+0

Nie ma ogólnego sposobu wykonania tej czynności dla dowolnej usługi. Ponadto, dlaczego chcesz mieć możliwość wywoływania dowolnej usługi, gdy soapUI zrobi to za Ciebie? –

Odpowiedz

4

Jedynym sposobem IMHO aby mieć pewność, że usługa jest gotowy ma być w stanie wywołać nieszkodliwą metodę na usługi i sprawdzić odpowiedź. Pobieranie pliku WSDL nie jest wystarczające.

Jest podobny SO pytanie na ten temat tutaj: - How do I test connectivity to an unknown web service in C#?

+0

Dobry link, okrzyki za to –

0

Chciałbym poprosić o dokument WSDL. Jeśli ją odzyskasz, oznacza to, że usługa istnieje i możesz sprawdzić WSDL pod kątem implementowanych metod.

Rozważmy czytanie o WS-Discovery

http://docs.oasis-open.org/ws-dd/discovery/1.1/wsdd-discovery-1.1-spec.html

+0

to właściwie nie jest odpowiedź, mówisz do niego, przeczytaj instrukcję i msdn i znajdź to. Czy znasz odpowiedz ? – Aristos

+0

niektóre usługi mogą wyłączyć ekspozycję pliku wsdl. na przykład: względy bezpieczeństwa. – adt