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. |