W WCF istnieje kilka różnych rodzajów powiązań opartych na HTTP:
Jakie są różnice między tymi 3?
W szczególności jakie są różnice pod względem funkcji / wydajności i kompatybilności?
W WCF istnieje kilka różnych rodzajów powiązań opartych na HTTP:
Jakie są różnice między tymi 3?
W szczególności jakie są różnice pod względem funkcji / wydajności i kompatybilności?
Odpowiedzi:
Porównujesz jabłka do pomarańczy tutaj:
webHttpBinding to powiązanie w stylu REST, w którym po prostu trafiasz adres URL i odzyskujesz ładunek XML lub JSON z usługi internetowej
basicHttpBinding i wsHttpBinding to dwa wiązania oparte na SOAP, które różnią się od REST. Zaletą SOAP jest to, że WSDL i XSD opisują usługę, jej metody i przekazywane dane bardzo szczegółowo (REST jeszcze czegoś takiego nie ma - jeszcze). Z drugiej strony nie możesz po prostu przeglądać w przeglądarce punktu końcowego WSHttpBinding i przeglądać XML - musisz użyć klienta SOAP, np. WcfTestClient lub własnej aplikacji.
Tak więc twoją pierwszą decyzją musi być: REST vs. SOAP (lub możesz odsłonić oba typy punktów końcowych ze swojej usługi - to też jest możliwe).
Następnie między basicHttpBinding i wsHttpBinding występują następujące różnice:
basicHttpBinding to bardzo podstawowe wiązanie - SOAP 1.1, niewiele pod względem bezpieczeństwa, niewiele więcej pod względem funkcji - ale kompatybilne z niemal każdym klientem SOAP na rynku -> świetny pod względem interoperacyjności, słaby pod względem funkcji i bezpieczeństwa
wsHttpBinding to pełnoprawne wiązanie, które obsługuje mnóstwo funkcji i standardów WS- * - ma o wiele więcej funkcji bezpieczeństwa, możesz korzystać z połączeń sesyjnych, możesz korzystać z niezawodnego przesyłania komunikatów, możesz używać kontroli transakcji - po prostu dużo więcej rzeczy , ale wsHttpBinding jest również o wiele * cięższy ”i dodaje dużo narzutu do wiadomości przesyłanych przez sieć
Aby uzyskać szczegółowe porównanie (w tym tabelę i przykłady kodu) między nimi, zapoznaj się z tym artykułem dotyczącym projektu kodowego: Różnice między BasicHttpBinding i WsHttpBinding