Jak użyć pliku WSDL do utworzenia usługi WCF (nie wykonać połączenia)

Mam stary plik WSDL i chcę stworzyć serwer oparty na tym pliku WSDL.

WSDL jest generowany z ASMX (przypuszczam, ale nie jestem pewien).

Jak mogę to osiągnąć ?


Oryginalne pytanie gdzie OP myślał, że potrzebuje stworzyć klienta na podstawie WSDL.

 94
Author: Community, 2009-06-04

5 answers

Używając svcutil, możesz tworzyć interfejsy i klasy (Kontrakty danych) z WSDL.

svcutil your.wsdl (or svcutil your.wsdl /l:vb if you want Visual Basic)

Spowoduje utworzenie pliku o nazwie " your.cs "w C #(lub" twój.vb " w VB.NET), który zawiera wszystkie niezbędne elementy.

Teraz musisz utworzyć klasę "MyService", która zaimplementuje interfejs usługi (IServiceInterface) - lub kilka interfejsów usług - i jest to twoja instancja serwera.

Teraz klasa sama w sobie jeszcze nie pomaga - będziesz musiał prowadzić usługa gdzieś. Musisz utworzyć własną instancję ServiceHost, która hostuje usługę, skonfigurować punkty końcowe itd. - lub możesz hostować swoją usługę w IIS.

 109
Author: marc_s,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-04-19 14:55:20

Tam są dobre zasoby, jeśli wiesz, czego szukać. Spróbuj "kontrakt pierwszy" i WCF. lub "WSDL First" i WCF.

Oto wybór:

 40
Author: Cheeso,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-06-04 13:37:22

Użyj svcutil.exe z przełącznikiem /sc do generowania kontraktów WCF. Spowoduje to utworzenie pliku kodu, który można dodać do projektu. Będzie on zawierał wszystkie interfejsy i typy danych potrzebne do utworzenia usługi. Zmień lokalizację wyjścia za pomocą przełącznika /o, lub możesz znaleźć plik w folderze, w którym uruchomiłeś svcutil.exe. Domyślnym językiem jest C# , ale myślę, że (nigdy nie próbowałem) powinieneś być w stanie to zmienić za pomocą /l:vb.

svcutil /sc "WSDL file path"

Jeśli twój WSDL ma jakieś wspierające XSD pliki przekazują je jako argumenty po WSDL.

svcutil /sc "WSDL file path" "XSD 1 file path" "XSD 2 file path" ... "XSD n file path"

Następnie utwórz nową klasę, która jest Twoją usługą i zaimplementuj interfejs umowy, który właśnie stworzyłeś.

 28
Author: Dennis Calla,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-11-14 10:53:41

Możesz użyć svcutil.exe do generowania kodu klienta. Obejmowałoby to definicję umowy o świadczenie usług oraz wszelkich wymaganych umów dotyczących danych i umów dotyczących usterek.

Następnie po prostu usuń kod klienta: klasy, które realizują umowy serwisowe. Następnie będziesz musiał wdrożyć je samodzielnie, w swojej służbie.

 7
Author: John Saunders,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-06-04 13:32:03

Używając narzędzia "Dodaj odniesienie do usługi" w Visual Studio, możesz wstawić adres jako:

Plik: / / / ścieżka / do / wsdl / plik.wsdl

I ładuje się poprawnie.

 2
Author: Vagner Gon,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-08-08 13:37:41