<basicHttpBinding>

Reprezentuje powiązanie, którego usługa Windows Communication Foundation (WCF) może używać do konfigurowania i uwidaczniania punktów końcowych, które mogą komunikować się z usługami sieci Web i klientami opartymi na programie ASMX oraz innymi usługami zgodnymi z profilem podstawowym WS-I 1.1.

<konfiguracja>
  <System.servicemodel>
    <Powiązania>
      <basicHttpBinding>

Składnia

<basicHttpBinding>
  <binding allowCookies="Boolean"
           bypassProxyOnLocal="Boolean"
           closeTimeout="TimeSpan"
           hostNameComparisonMode="StrongWildCard/Exact/WeakWildcard"
           maxBufferPoolSize="Integer"
           maxBufferSize="Integer"
           maxReceivedMessageSize="Integer"
           messageEncoding="Text/Mtom"
           name="String"
           openTimeout="TimeSpan"
           proxyAddress="URI"
           receiveTimeout="TimeSpan"
           sendTimeout="TimeSpan"
           textEncoding="UnicodeFffeTextEncoding/Utf16TextEncoding/Utf8TextEncoding"
           transferMode="Buffered/Streamed/StreamedRequest/StreamedResponse"
           useDefaultWebProxy="Boolean">
    <security mode="None/Transport/Message/TransportWithMessageCredential/TransportCredentialOnly">
      <transport clientCredentialType="None/Basic/Digest/Ntlm/Windows/Certificate"
                 proxyCredentialType="None/Basic/Digest/Ntlm/Windows"
                 realm="String" />
      <message algorithmSuite="Basic128/Basic192/Basic256/Basic128Rsa15/Basic256Rsa15/TripleDes/TripleDesRsa15/Basic128Sha256/Basic192Sha256/TripleDesSha256/Basic128Sha256Rsa15/Basic192Sha256Rsa15/Basic256Sha256Rsa15/TripleDesSha256Rsa15"
               clientCredentialType="UserName/Certificate" />
    </security>
    <readerQuotas maxArrayLength="Integer"
                  maxBytesPerRead="Integer"
                  maxDepth="Integer"
                  maxNameTableCharCount="Integer"
                  maxStringContentLength="Integer" />
  </binding>
</basicHttpBinding>

Atrybuty i elementy

W poniższych sekcjach opisano atrybuty, elementy podrzędne i elementy nadrzędne.

Atrybuty

Atrybut Opis
allowCookies Wartość logiczna wskazująca, czy klient akceptuje pliki cookie i propaguje je na przyszłych żądaniach. Wartość domyślna to false.

Tej właściwości można używać podczas interakcji z usługami sieci Web ASMX korzystającymi z plików cookie. W ten sposób można mieć pewność, że pliki cookie zwrócone z serwera są automatycznie kopiowane do wszystkich przyszłych żądań klientów dla tej usługi.
bypassProxyOnLocal Wartość logiczna wskazująca, czy pominąć serwer proxy dla adresów lokalnych. Wartość domyślna to false.

Zasób internetowy jest lokalny, jeśli ma adres lokalny. Adres lokalny to taki, który znajduje się na tym samym komputerze, lokalnej sieci LAN lub intranecie i jest identyfikowany, syntaktycznie, przez brak kropki (.) jak w identyfikatorach http://webserver/ URI i http://localhost/.

Ustawienie tego atrybutu określa, czy punkty końcowe skonfigurowane przy użyciu basicHttpBinding używają serwera proxy podczas uzyskiwania dostępu do zasobów lokalnych. Jeśli ten atrybut to true, żądania do lokalnych zasobów internetowych nie używają serwera proxy. Użyj nazwy hosta (zamiast hosta lokalnego), jeśli chcesz, aby klienci przechodzili przez serwer proxy podczas rozmowy z usługami na tym samym komputerze, gdy ten atrybut jest ustawiony na truewartość .

Gdy ten atrybut to false, wszystkie żądania internetowe są wysyłane za pośrednictwem serwera proxy.
closeTimeout TimeSpan Wartość określająca interwał czasu podany dla operacji zamknięcia do ukończenia. Ta wartość powinna być większa lub równa Zero. Wartość domyślna to 00:01:00.
hostNameComparisonMode Określa tryb porównania nazwy hosta HTTP używany do analizowania identyfikatorów URI. Ten atrybut jest typu HostNameComparisonMode, który wskazuje, czy nazwa hosta jest używana do dotarcia do usługi podczas dopasowywania identyfikatora URI. Wartość domyślna to StrongWildcard, która ignoruje nazwę hosta w dopasowaniu.
maxBufferPoolSize Wartość całkowita określająca maksymalną ilość pamięci przydzielonej do użycia przez menedżera buforów komunikatów, które odbierają komunikaty z kanału. Wartość domyślna to 524288 (0x80000) bajtów.

Menedżer buforów minimalizuje koszty korzystania z buforów przy użyciu puli buforów. Bufory są wymagane do przetwarzania komunikatów przez usługę, gdy wyjdą z kanału. Jeśli w puli buforów nie ma wystarczającej ilości pamięci do przetworzenia obciążenia komunikatów, Menedżer buforów musi przydzielić dodatkową pamięć ze sterta CLR, co zwiększa obciążenie odzyskiwania pamięci. Obszerna alokacja sterty pamięci CLR jest wskazaniem, że rozmiar puli buforów jest zbyt mały i że wydajność można poprawić z większą alokacją przez zwiększenie limitu określonego przez ten atrybut.
maxBufferSize Wartość całkowita określająca maksymalny rozmiar w bajtach buforu, który przechowuje komunikaty podczas przetwarzania dla punktu końcowego skonfigurowanego za pomocą tego powiązania. Wartość domyślna to 65 536 bajtów.
maxReceivedMessageSize Dodatnia liczba całkowita, która definiuje maksymalny rozmiar komunikatu w bajtach, w tym nagłówków, dla komunikatu, który można odebrać w kanale skonfigurowanym za pomocą tego powiązania. Nadawca otrzymuje błąd PROTOKOŁU SOAP, jeśli komunikat jest zbyt duży dla odbiornika. Odbiorca odrzuca komunikat i tworzy wpis zdarzenia w dzienniku śledzenia. Wartość domyślna to 65 536 bajtów.
messageEncoding Definiuje koder używany do kodowania komunikatu PROTOKOŁU SOAP. Prawidłowe wartości obejmują następujące wartości:

- Tekst: użyj kodera wiadomości SMS.
- Mtom: Użyj kodera mechanizmu organizacji transmisji komunikatów 1.0 (MTOM).

Wartość domyślna to Text. Ten atrybut jest typu WSMessageEncoding.
name Ciąg zawierający nazwę konfiguracji powiązania. Ta wartość powinna być unikatowa wśród powiązań tego samego typu. Począwszy od .NET Framework 4, powiązania i zachowania nie muszą mieć nazwy. Aby uzyskać więcej informacji na temat domyślnej konfiguracji i bez nazw powiązań i zachowań, zobacz Uproszczona konfiguracja i Uproszczona konfiguracja dla usług WCF.
openTimeout TimeSpan Wartość określająca interwał czasu podany dla operacji otwierania do ukończenia. Ta wartość powinna być większa lub równa Zero. Wartość domyślna to 00:01:00.
proxyAddress Identyfikator URI zawierający adres serwera proxy HTTP. Jeśli useSystemWebProxy jest ustawiona wartość true, to ustawienie musi mieć wartość null. Wartość domyślna to null.
receiveTimeout TimeSpan Wartość określająca interwał czasu podany dla operacji odbierania do ukończenia. Ta wartość powinna być większa lub równa Zero. Wartość domyślna to 00:10:00.
sendTimeout TimeSpan Wartość określająca interwał czasu podany dla operacji wysyłania do ukończenia. Ta wartość powinna być większa lub równa Zero. Wartość domyślna to 00:01:00.
textEncoding Ustawia kodowanie zestawu znaków, które ma być używane do emitowania komunikatów w powiązaniu. Prawidłowe wartości obejmują następujące wartości:

- BigEndianUnicode: kodowanie Unicode BigEndian.
- Unicode: kodowanie 16-bitowe.
- UTF8: kodowanie 8-bitowe

Wartość domyślna to UTF8. Ten atrybut jest typu Encoding.
transferMode Prawidłowa TransferMode wartość określająca, czy komunikaty są buforowane, czy przesyłane strumieniowo na żądanie lub odpowiedź.
useDefaultWebProxy Wartość logiczna określająca, czy ma być używany automatycznie skonfigurowany serwer proxy HTTP systemu, jeśli jest dostępny. Wartość domyślna to true.

Elementy podrzędne

Element Opis
<Zabezpieczeń> Definiuje ustawienia zabezpieczeń dla powiązania. Ten element jest typu BasicHttpSecurityElement.
<Readerquotas> Definiuje ograniczenia dotyczące złożoności komunikatów protokołu SOAP, które mogą być przetwarzane przez punkty końcowe skonfigurowane za pomocą tego powiązania. Ten element jest typu XmlDictionaryReaderQuotasElement.

Elementy nadrzędne

Element Opis
<Powiązania> Ten element zawiera kolekcję powiązań standardowych i niestandardowych.

Uwagi

Element BasicHttpBinding używa protokołu HTTP jako transportu do wysyłania komunikatów protokołu SOAP 1.1. Usługa może używać tego powiązania do uwidaczniania punktów końcowych zgodnych z interfejsem WS-I BP 1.1, takich jak te, z których korzystają klienci ASMX. Podobnie klient może używać usługi BasicHttpBinding do komunikowania się z usługami uwidacznianymi punktami końcowymi zgodnymi z interfejsem WS-I BP 1.1, takimi jak usługi sieci Web ASMX lub usługi skonfigurowane z usługą BasicHttpBinding.

Zabezpieczenia są domyślnie wyłączone, ale można dodać ustawienie atrybutu mode elementu podrzędnego <zabezpieczeń> na wartość inną niż None. Domyślnie używa kodowania komunikatów "Text" i kodowania tekstu UTF-8.

Przykład 1

W poniższym przykładzie pokazano użycie usługi BasicHttpBinding , które zapewnia komunikację HTTP i maksymalną współdziałanie z usługami sieci Web pierwszej i drugiej generacji. Powiązanie jest określone w plikach konfiguracji klienta i usługi. Typ powiązania jest określony przy użyciu binding atrybutu <endpoint> elementu. Jeśli chcesz skonfigurować podstawowe powiązanie i zmienić niektóre jego ustawienia, należy zdefiniować konfigurację powiązania. Punkt końcowy musi odwoływać się do konfiguracji powiązania według nazwy przy użyciu bindingConfiguration atrybutu <endpoint> elementu, jak pokazano w poniższym kodzie konfiguracji usługi.

<system.serviceModel>
  <services>
    <service type="Microsoft.ServiceModel.Samples.CalculatorService"
             behaviorConfiguration="CalculatorServiceBehavior">
      <endpoint address=""
                binding="basicHttpBinding"
                bindingConfiguration="Binding1"
                contract="Microsoft.ServiceModel.Samples.ICalculator" />
    </service>
  </services>
  <bindings>
    <basicHttpBinding>
      <binding name="Binding1"
               hostNameComparisonMode="StrongWildcard"
               receiveTimeout="00:10:00"
               sendTimeout="00:10:00"
               openTimeout="00:10:00"
               closeTimeout="00:10:00"
               maxReceivedMessageSize="65536"
               maxBufferSize="65536"
               maxBufferPoolSize="524288"
               transferMode="Buffered"
               messageEncoding="Text"
               textEncoding="utf-8"
               bypassProxyOnLocal="false"
               useDefaultWebProxy="true">
        <security mode="None" />
      </binding>
    </basicHttpBinding>
  </bindings>
</system.serviceModel>

Przykład 2

Począwszy od .NET Framework 4, powiązania i zachowania nie muszą mieć nazwy. Funkcjonalność z poprzedniego przykładu można wykonać przez usunięcie powiązaniaConfiguration z adresu punktu końcowego i nazwy z powiązania.

<system.serviceModel>
  <services>
    <service type="Microsoft.ServiceModel.Samples.CalculatorService"
             behaviorConfiguration="CalculatorServiceBehavior">
      <endpoint address=""
                binding="basicHttpBinding"
                contract="Microsoft.ServiceModel.Samples.ICalculator" />
    </service>
  </services>
  <bindings>
    <basicHttpBinding>
      <binding hostNameComparisonMode="StrongWildcard"
               receiveTimeout="00:10:00"
               sendTimeout="00:10:00"
               openTimeout="00:10:00"
               closeTimeout="00:10:00"
               maxReceivedMessageSize="65536"
               maxBufferSize="65536"
               maxBufferPoolSize="524288"
               transferMode="Buffered"
               messageEncoding="Text"
               textEncoding="utf-8"
               bypassProxyOnLocal="false"
               useDefaultWebProxy="true">
        <security mode="None" />
      </binding>
    </basicHttpBinding>
  </bindings>
</system.serviceModel>

Aby uzyskać więcej informacji na temat domyślnej konfiguracji i bez nazw powiązań i zachowań, zobacz Uproszczona konfiguracja i Uproszczona konfiguracja dla usług WCF.

Zobacz też