Powiązania dostarczone przez system

Powiązania określają mechanizm komunikacji używany podczas rozmowy z punktem końcowym i wskazują, jak nawiązać połączenie z punktem końcowym. Powiązanie zawiera następujące elementy:

  • Stos protokołu określa ustawienia przepływu zabezpieczeń, niezawodności i kontekstu do użycia dla komunikatów wysyłanych do punktu końcowego.

  • Transport określa podstawowy protokół transportu używany podczas wysyłania komunikatów do punktu końcowego, na przykład TCP lub HTTP.

  • Kodowanie określa kodowanie przewodu do użycia dla komunikatów wysyłanych do punktu końcowego. Na przykład tekst/XML, binarny lub mechanizm optymalizacji transmisji komunikatów (MTOM).

W tym artykule przedstawiono wszystkie powiązania programu Windows Communication Foundation (WCF). Jeśli żadne z tych powiązań nie spełnia dokładnych kryteriów aplikacji, możesz utworzyć powiązanie niestandardowe. Aby uzyskać więcej informacji na temat tworzenia powiązań niestandardowych, zobacz Powiązania niestandardowe.

Bezpieczne i międzyoperacyjne powiązanie, które obsługuje protokół WS-Federation, umożliwia organizacjom, które znajdują się w federacji w celu wydajnego uwierzytelniania i autoryzacji użytkowników.

Ważne

Zawsze wybieraj powiązanie, które obejmuje zabezpieczenia. Domyślnie wszystkie powiązania z wyjątkiem podstawowego< elementuHttpBinding> mają włączone zabezpieczenia. Jeśli nie wybierzesz bezpiecznego powiązania lub wyłączysz zabezpieczenia, pamiętaj, aby chronić dane w inny sposób, na przykład przechowywanie w zabezpieczonym centrum danych lub w izolowanej sieci.

Ważne

Nigdy nie używaj kontraktów dwukierunkowych z powiązaniami, które nie obsługują zabezpieczeń lub mają wyłączone zabezpieczenia, chyba że dane są zabezpieczane w inny sposób.

Następujące powiązania są dostarczane z usługą WCF:

Wiązanie Element konfiguracji Opis
BasicHttpBinding <basicHttpBinding> Powiązanie odpowiednie do komunikowania się z usługami sieci Web zgodnymi z profilem WS-Basic, na przykład usługami sieci Web ASP.NET (ASMX). To powiązanie używa protokołu HTTP jako transportu i tekstu/xml jako domyślnego kodowania komunikatów.
WSHttpBinding <wsHttpBinding> Bezpieczne i międzyoperacyjne powiązanie, które jest odpowiednie dla kontraktów usług innych niż dwukierunkowe.
WSDualHttpBinding <wsDualHttpBinding> Bezpieczne i międzyoperacyjne powiązanie, które jest odpowiednie dla umów o świadczenie usług dwukierunkowych lub komunikacji za pośrednictwem pośredników SOAP.
WSFederationHttpBinding <wsFederationHttpBinding> Bezpieczne i międzyoperacyjne powiązanie, które obsługuje protokół WS-Federation, który umożliwia organizacjom, które znajdują się w federacji w celu wydajnego uwierzytelniania i autoryzacji użytkowników.
NetHttpBinding <netHttpBinding> Powiązanie przeznaczone do korzystania z usług HTTP lub WebSocket, które domyślnie używają kodowania binarnego.
NetHttpsBinding <netHttpsBinding> Bezpieczne powiązanie przeznaczone do korzystania z usług HTTP lub WebSocket, które domyślnie używają kodowania binarnego.
NetTcpBinding <Nettcpbinding> Bezpieczne i zoptymalizowane powiązanie odpowiednie do komunikacji między aplikacjami WCF.
NetNamedPipeBinding <Netnamedpipebinding> Bezpieczne, niezawodne, zoptymalizowane powiązanie, które jest odpowiednie do komunikacji między aplikacjami WCF na maszynie.
NetMsmqBinding <Netmsmqbinding> Powiązanie w kolejce, które jest odpowiednie do komunikacji między aplikacjami WCF.
NetPeerTcpBinding <Netpeertcpbinding> Powiązanie, które umożliwia bezpieczną komunikację maszynową.
MsmqIntegrationBinding <msmqIntegrationBinding> Powiązanie, które jest odpowiednie do komunikacji między maszynami między aplikacją WCF i istniejącymi aplikacjami kolejkowania komunikatów.
BasicHttpContextBinding <basicHttpContextBinding> Powiązanie odpowiednie do komunikowania się z usługami sieci Web zgodnymi z profilem WS-Basic, które umożliwiają korzystanie z plików cookie HTTP do wymiany kontekstu.
NetTcpContextBinding <Nettcpcontextbinding> Bezpieczne i zoptymalizowane powiązanie odpowiednie do komunikacji między aplikacjami WCF, które umożliwiają wymianę kontekstu nagłówków PROTOKOŁU SOAP.
WebHttpBinding <webHttpBinding> Powiązanie używane do konfigurowania punktów końcowych dla usług sieci Web WCF, które są widoczne za pośrednictwem żądań HTTP zamiast komunikatów SOAP.
WSHttpContextBinding <wsHttpContextBinding> Bezpieczne i interoperacyjne powiązanie odpowiednie dla kontraktów usług innych niż dwudupleksowe, które umożliwiają korzystanie z nagłówków PROTOKOŁU SOAP do wymiany kontekstu.
UdpBinding <Udpbinding> Powiązanie używane podczas wysyłania prostych komunikatów do dużej liczby klientów jednocześnie.

W poniższej tabeli przedstawiono funkcje każdego powiązania dostarczonego przez system. Powiązania znajdują się w kolumnach tabeli; funkcje są wymienione w wierszach i opisane w drugiej tabeli. Poniższa tabela zawiera klucz używanych skrótów powiązań. Aby wybrać powiązanie, określ, która kolumna spełnia wszystkie potrzebne funkcje wierszy.

Wiązanie Współdziałanie Zabezpieczenia (ustawienie domyślne) Sesja
(Domyślnie)
Transakcje Dupleks Kodowanie (ustawienie domyślne) Przesyłanie strumieniowe
(Domyślnie)
BasicHttpBinding Profil podstawowy 1.1 (Brak), Transport, Message, Mixed (Brak) (Brak) n/d Tekst, (MTOM) Tak
(buforowane)
WSHttpBinding WS Transport, (wiadomość), mieszany (Brak), Niezawodna sesja, Sesja zabezpieczeń (Brak), Tak n/d (Tekst), MTOM Nie
WSDualHttpBinding WS (Wiadomość), Brak (Niezawodna sesja), Sesja zabezpieczeń (Brak), Tak Tak (Tekst), MTOM Nie
WSFederationHttpBinding WS-Federation (Komunikat), Mieszany, Brak (Brak), Niezawodna sesja, Sesja zabezpieczeń (Brak), Tak Nie (Tekst), MTOM Nie
NetHttpBinding .NET (Brak), Transport, Message, TransportWithMessageCredential, TransportCredentialOnly Zobacz notatkę poniżej Brak Zobacz notatkę poniżej (Binary), Text, MTOM Tak (buforowane)
NetHttpsBinding .NET (Transport), TransportWithMessageCredential Zobacz notatkę poniżej Brak Zobacz notatkę poniżej (Binary), Text, MTOM Tak
(buforowane)
NetTcpBinding .NET (Transport), Message, None, Mixed (Transport), Niezawodna sesja, Sesja zabezpieczeń (Brak), Tak Tak Binarne Tak
(buforowane)
NetNamedPipeBinding .NET (Transport), Brak Brak, (Transport) (Brak), Tak Tak Binarne Tak
(buforowane)
NetMsmqBinding .NET Komunikat, (Transport), Brak (Brak), Transport Brak, (Tak) Nie Binarne Nie
NetPeerTcpBinding Element równorzędny (Transport) (Brak) (Brak) Tak Nie
MsmqIntegrationBinding Usługa MSMQ (Transport) (Brak) Brak, (Tak) nie dotyczy nie dotyczy Nie
BasicHttpContextBinding Profil podstawowy 1.1 (Brak), Transport, Message, Mixed (Brak) (Brak) n/d Tekst, (MTOM) Tak
(buforowane)
NetTcpContextBinding .NET (Transport), Message, None, Mixed (Transport), Niezawodna sesja, Sesja zabezpieczeń (Brak), Tak Tak Binarne Tak
(buforowane)
WSHttpContextBinding WS Transport, (wiadomość), mieszany (Brak), Niezawodna sesja, Sesja zabezpieczeń (Brak), Tak n/d Tekst, (MTOM) Nie
UdpBinding

Uwaga: Współdziałanie można osiągnąć, implementując standardową specyfikację protokołu SOAP over-UDP, którą implementuje to powiązanie.
.NET (Brak) (Brak) (Brak) n/d (Tekst) Nie

Ważne

NetHttpBinding jest powiązaniem przeznaczonym do korzystania z usług HTTP lub WebSocket i domyślnie używa kodowania binarnego. NetHttpBinding wykrywa, czy jest on używany z kontraktem odpowiedzi na żądanie lub kontraktem dwukierunkowym i zmienia jego zachowanie w celu dopasowania; używa protokołu HTTP dla żądań-odpowiedzi i obiektów WebSocket dla dwukierunkowego. To zachowanie można zastąpić przy użyciu WebSocketTransportUsage ustawienia powiązania: WhenDuplex — jest to wartość domyślna i zachowuje się zgodnie z powyższym opisem. Nigdy — uniemożliwia to korzystanie z obiektów WebSocket. Próba użycia kontraktu dwustronnego z tym ustawieniem powoduje wyjątek. Zawsze — wymusza to, aby zestawy WebSocket były używane nawet w przypadku kontraktów odpowiedzi na żądanie. Aplikacja NetHttpBinding obsługuje niezawodne sesje w trybie HTTP i trybie WebSocket. W trybie WebSocket sesje są dostarczane przez transport.

W poniższej tabeli opisano funkcje wymienione w poprzedniej tabeli.

Cecha Opis
Typ współdziałania Nazwij protokół lub technologię, za pomocą której powiązanie zapewnia współdziałanie.
Zabezpieczenia Określa sposób zabezpieczania kanału:
- Brak: komunikat PROTOKOŁU SOAP nie jest zabezpieczony i klient nie jest uwierzytelniony.
- Transport: Wymagania dotyczące zabezpieczeń są spełnione w warstwie transportu.
- Komunikat: Wymagania dotyczące zabezpieczeń są spełnione w warstwie komunikatów.
- Mieszane: oświadczenia są przenoszone w wiadomości; wymagania dotyczące integralności i poufności są spełnione przez warstwę transportu.
Sesja Określa, czy to powiązanie obsługuje kontrakty sesji.
Transakcje Określa, czy transakcje są włączone.
Dupleks Określa, czy kontrakty dwustronne są obsługiwane. Należy pamiętać, że ta funkcja wymaga obsługi sesji w powiązaniu.
Encoding Określa format przewodu komunikatu. Dozwolone wartości obejmują:
- Tekst: na przykład UTF-8.
-Binarnym
- Mechanizm optymalizacji transmisji komunikatów (MTOM): metoda wydajnego kodowania binarnych elementów XML w kontekście koperty SOAP.
Przesyłanie strumieniowe Określa, czy przesyłanie strumieniowe jest obsługiwane dla komunikatów przychodzących i wychodzących. TransferMode Użyj właściwości powiązania, aby ustawić wartość. Dozwolone wartości obejmują:
- Buffered: Komunikaty żądania i odpowiedzi są buforowane.
- Streamed: Komunikaty żądania i odpowiedzi są przesyłane strumieniowo.
- StreamedRequest: komunikat żądania jest przesyłany strumieniowo, a komunikat odpowiedzi jest buforowany.
- StreamedResponse: komunikat żądania jest buforowany, a komunikat odpowiedzi jest przesyłany strumieniowo.

Zobacz też