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.
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.
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:
- [[6]} podstawowy przegląd WSDL - pierwszy rozwój z WCF i SvcUtil.exe .
- WSCF-darmowy dodatek do Visual Studio umożliwiający realizację pierwszego projektu z WCF
- artykuł o tym, jak zaprojektować" przyjazne WCF " WSDL
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ś.
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.
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.
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