Freigeben über


<basicHttpBinding>

Stellt eine Bindung dar, die ein Windows Communication Foundation (WCF)-Dienst verwenden kann, um Endpunkte zu konfigurieren und verfügbar zu machen, die mit ASMX-basierten Webdiensten und Clients und anderen Diensten kommunizieren können, die dem WS-I Basic Profile 1.1 entsprechen.

<Konfiguration>
   <system.serviceModel>
     <Einbände>
       <basicHttpBinding>

Syntax

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

Attribute und Elemente

In den folgenden Abschnitten werden Attribute sowie untergeordnete und übergeordnete Elemente beschrieben.

Attribute

Merkmal Description
allowCookies Ein boolescher Wert, der angibt, ob der Client Cookies akzeptiert und an zukünftige Anforderungen weitergibt. Der Standardwert lautet false.

Sie können diese Eigenschaft verwenden, wenn Sie mit ASMX-Webdiensten interagieren, die Cookies verwenden. Auf diese Weise können Sie sicher sein, dass die vom Server zurückgegebenen Cookies automatisch in alle zukünftigen Clientanforderungen für diesen Dienst kopiert werden.
bypassProxyOnLocal Ein boolescher Wert, der angibt, ob der Proxyserver für lokale Adressen umgangen werden soll. Der Standardwert lautet false.

Eine Internetressource ist lokal, wenn sie über eine lokale Adresse verfügt. Eine lokale Adresse ist eine Adresse, die sich auf demselben Computer befindet, das lokale LAN oder Intranet und wird syntaktisch durch den Mangel an Punkt (.) wie in den URIs http://webserver/ und http://localhost/.

Durch Festlegen dieses Attributs wird bestimmt, ob endpunkte, die mit dem BasicHttpBinding konfiguriert sind, den Proxyserver beim Zugriff auf lokale Ressourcen verwenden. Wenn dieses Attribut lautet true, verwenden Anforderungen an lokale Internetressourcen nicht den Proxyserver. Verwenden Sie den Hostnamen (anstelle von localhost), wenn Clients einen Proxy durchlaufen sollen, wenn Sie mit Diensten auf demselben Computer sprechen, wenn dieses Attribut auf " true.

Wenn dieses Attribut lautet false, werden alle Internetanforderungen über den Proxyserver ausgeführt.
closeTimeout Ein TimeSpan Wert, der das Zeitintervall angibt, das für einen abschlussden Vorgang bereitgestellt wird. Dieser Wert sollte größer oder gleich Zerosein. Der Standardwert ist 00:01:00.
hostNameComparisonMode Gibt den Vergleichsmodus des HTTP-Hostnamens an, der zum Analysieren von URIs verwendet wird. Dieses Attribut ist vom Typ HostNameComparisonMode, der angibt, ob der Hostname verwendet wird, um den Dienst beim Abgleich im URI zu erreichen. Der Standardwert ist StrongWildcard, der den Hostnamen in der Übereinstimmung ignoriert.
maxBufferPoolSize Ein ganzzahliger Wert, der die maximale Speichermenge angibt, die vom Vorgesetzten der Nachrichtenpuffer, die Nachrichten vom Kanal empfangen, zugewiesen wird. Der Standardwert ist 524288 Bytes (0x80000).

Der Puffer-Manager minimiert die Kosten für die Verwendung von Puffern mithilfe eines Pufferpools. Puffer sind erforderlich, um Nachrichten vom Dienst zu verarbeiten, wenn sie aus dem Kanal stammen. Wenn nicht genügend Arbeitsspeicher im Pufferpool vorhanden ist, um die Nachrichtenlast zu verarbeiten, muss der Puffer-Manager zusätzlichen Arbeitsspeicher aus dem CLR-Heap zuweisen, wodurch der Garbage Collection-Aufwand erhöht wird. Eine umfangreiche Zuordnung aus dem CLR-Garbage Heap ist ein Hinweis darauf, dass die Größe des Pufferpools zu klein ist und dass die Leistung mit einer größeren Zuordnung verbessert werden kann, indem die durch dieses Attribut angegebene Grenze erhöht wird.
maxBufferSize Ein ganzzahliger Wert, der die maximale Größe eines Puffers in Bytes angibt, der Nachrichten speichert, während sie für einen Endpunkt verarbeitet werden, der mit dieser Bindung konfiguriert ist. Der Standardwert ist 65.536 Bytes.
maxReceivedMessageSize Eine positive ganze Zahl, die die maximale Nachrichtengröße in Bytes definiert, einschließlich Kopfzeilen, für eine Nachricht, die in einem Kanal empfangen werden kann, der mit dieser Bindung konfiguriert ist. Der Absender empfängt einen SOAP-Fehler, wenn die Nachricht für den Empfänger zu groß ist. Der Empfänger legt die Nachricht ab und erstellt einen Eintrag des Ereignisses im Ablaufverfolgungsprotokoll. Der Standardwert ist 65.536 Byte.
messageEncoding Definiert den Encoder, der zum Codieren der SOAP-Nachricht verwendet wird. Gültige Werte umfassen Folgendes:

- Text: Verwenden sie einen Textnachrichten-Encoder.
- Mtom: Verwenden Sie einen Nachrichtenübertragungsmechanismus 1.0 (MTOM)-Encoder.

Der Standardwert ist „Text“. Dieses Attribut ist vom Typ WSMessageEncoding.
name Eine Zeichenfolge, die den Konfigurationsnamen der Bindung enthält. Dieser Wert sollte zwischen Bindungen desselben Typs eindeutig sein. Ab .NET Framework 4 müssen Bindungen und Verhaltensweisen keinen Namen haben. Weitere Informationen zu Standardkonfigurationen und namenslosen Bindungen und Verhaltensweisen finden Sie unter Vereinfachte Konfiguration und vereinfachte Konfiguration für WCF-Dienste.
openTimeout Ein TimeSpan Wert, der das Für den Abschluss eines geöffneten Vorgangs bereitgestellte Zeitintervall angibt. Dieser Wert sollte größer oder gleich Zerosein. Der Standardwert ist 00:01:00.
proxyAddress Ein URI, der die Adresse des HTTP-Proxys enthält. Wenn useSystemWebProxy diese Einstellung auf true festgelegt ist, muss diese Einstellung sein null. Der Standardwert lautet null.
receiveTimeout Ein TimeSpan Wert, der das Für den Abschluss eines Empfangsvorgangs bereitgestellte Zeitintervall angibt. Dieser Wert sollte größer oder gleich Zerosein. Der Standardwert ist 00:10:00.
sendTimeout Ein TimeSpan Wert, der das Für den Abschluss eines Sendevorgangs bereitgestellte Zeitintervall angibt. Dieser Wert sollte größer oder gleich Zerosein. Der Standardwert ist 00:01:00.
textEncoding Legt die Zeichensatzcodierung fest, die für das Senden von Nachrichten in der Bindung verwendet werden soll. Gültige Werte umfassen Folgendes:

- BigEndianUnicode: Unicode BigEndian-Codierung.
- Unicode: 16-Bit-Codierung.
- UTF8: 8-Bit-Codierung

Der Standardwert ist UTF8. Dieses Attribut ist vom Typ Encoding.
transferMode Ein gültiger TransferMode Wert, der angibt, ob Nachrichten in einer Anforderung oder Antwort gepuffert oder gestreamt werden.
useDefaultWebProxy Ein boolescher Wert, der angibt, ob der automatisch konfigurierte HTTP-Proxy des Systems verwendet werden soll, falls verfügbar. Der Standardwert lautet true.

Untergeordnete Elemente

Element Description
<Sicherheit> Definiert die Sicherheitseinstellungen für die Bindung. Dieses Element ist vom Typ BasicHttpSecurityElement.
<readerQuotas> Definiert die Einschränkungen für die Komplexität von SOAP-Nachrichten, die von Endpunkten verarbeitet werden können, die mit dieser Bindung konfiguriert sind. Dieses Element ist vom Typ XmlDictionaryReaderQuotasElement.

Übergeordnete Elemente

Element Description
<Einbände> Dieses Element enthält eine Sammlung von Standard- und benutzerdefinierten Bindungen.

Bemerkungen

BasicHttpBinding verwendet HTTP als Transport zum Senden von SOAP 1.1-Nachrichten. Ein Dienst kann diese Bindung verwenden, um Endpunkte verfügbar zu machen, die WS-I BP 1.1 entsprechen, z. B. solche, die ASMX-Clients nutzen. Ebenso kann ein Client die BasicHttpBinding verwenden, um mit Diensten zu kommunizieren, die Endpunkte verfügbar machen, die WS-I BP 1.1 entsprechen, z. B. ASMX-Webdienste oder -Dienste, die mit basicHttpBinding konfiguriert sind.

Die Sicherheit ist standardmäßig deaktiviert, kann jedoch hinzugefügt werden, das Modus-Attribut des <untergeordneten Sicherheitselements> auf einen anderen Wert als None. Es verwendet standardmäßig eine "Text"-Nachrichtencodierung und UTF-8-Textcodierung.

Beispiel 1

Im folgenden Beispiel wird die Verwendung der BasicHttpBinding HTTP-Kommunikation und der maximalen Interoperabilität mit Webdiensten der ersten und zweiten Generation veranschaulicht. Die Bindung wird in den Konfigurationsdateien für den Client und dienst angegeben. Der Bindungstyp wird mithilfe binding des Attributs des <endpoint> Elements angegeben. Wenn Sie die grundlegende Bindung konfigurieren und einige seiner Einstellungen ändern möchten, müssen Sie eine Bindungskonfiguration definieren. Der Endpunkt muss anhand des Attributs des bindingConfiguration Elements auf die Bindungskonfiguration <endpoint> verweisen, wie im folgenden Konfigurationscode für den Dienst dargestellt.

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

Beispiel 2

Ab .NET Framework 4 müssen Bindungen und Verhaltensweisen keinen Namen haben. Die Funktionalität aus dem vorherigen Beispiel kann durch Entfernen der BindingConfiguration aus der Endpunktadresse und dem Namen aus der Bindung erreicht werden.

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

Weitere Informationen zu Standardkonfigurationen und namenslosen Bindungen und Verhaltensweisen finden Sie unter Vereinfachte Konfiguration und vereinfachte Konfiguration für WCF-Dienste.

Siehe auch