Freigeben über


HttpTransportBindingElement Klasse

Definition

Stellt das Bindungselement dar, das zum Angeben eines HTTP-Transports für die Übertragung von Nachrichten verwendet wird.

public ref class HttpTransportBindingElement : System::ServiceModel::Channels::TransportBindingElement
public ref class HttpTransportBindingElement : System::ServiceModel::Channels::TransportBindingElement, System::ServiceModel::Description::IPolicyExportExtension, System::ServiceModel::Description::IWsdlExportExtension
public class HttpTransportBindingElement : System.ServiceModel.Channels.TransportBindingElement
public class HttpTransportBindingElement : System.ServiceModel.Channels.TransportBindingElement, System.ServiceModel.Description.IPolicyExportExtension, System.ServiceModel.Description.IWsdlExportExtension
type HttpTransportBindingElement = class
    inherit TransportBindingElement
type HttpTransportBindingElement = class
    inherit TransportBindingElement
    interface IWsdlExportExtension
    interface IPolicyExportExtension
Public Class HttpTransportBindingElement
Inherits TransportBindingElement
Public Class HttpTransportBindingElement
Inherits TransportBindingElement
Implements IPolicyExportExtension, IWsdlExportExtension
Vererbung
HttpTransportBindingElement
Abgeleitet
Implementiert

Beispiele

Der folgende Code zeigt, wie Sie die HttpTransportBindingElement.

Uri baseAddress = new Uri("http://localhost:8000/servicemodelsamples/service");

// Create a ServiceHost for the CalculatorService type and provide the base address.
using (ServiceHost serviceHost = new ServiceHost(typeof(CalculatorService), baseAddress))
{
    // Create a custom binding that contains two binding elements.
    ReliableSessionBindingElement reliableSession = new ReliableSessionBindingElement();
    reliableSession.Ordered = true;

    HttpTransportBindingElement httpTransport = new HttpTransportBindingElement();
    httpTransport.AuthenticationScheme = System.Net.AuthenticationSchemes.Anonymous;
    httpTransport.HostNameComparisonMode = HostNameComparisonMode.StrongWildcard;

    CustomBinding binding = new CustomBinding(reliableSession, httpTransport);

    // Add an endpoint using that binding.
    serviceHost.AddServiceEndpoint(typeof(ICalculator), binding, "");

    // Add a MEX endpoint.
    ServiceMetadataBehavior smb = new ServiceMetadataBehavior();
    smb.HttpGetEnabled = true;
    smb.HttpGetUrl = new Uri("http://localhost:8001/servicemodelsamples");
    serviceHost.Description.Behaviors.Add(smb);

    // Open the ServiceHostBase to create listeners and start listening for messages.
    serviceHost.Open();

    // The service can now be accessed.
    Console.WriteLine("The service is ready.");
    Console.WriteLine("Press <ENTER> to terminate service.");
    Console.WriteLine();
    Console.ReadLine();

    // Close the ServiceHostBase to shutdown the service.
    serviceHost.Close();
}
Dim baseAddress As New Uri("http://localhost:8000/servicemodelsamples/service")

' Create a ServiceHost for the CalculatorService type and provide the base address.
Using serviceHost As New ServiceHost(GetType(CalculatorService), baseAddress)
    ' Create a custom binding that contains two binding elements.
    Dim reliableSession As New ReliableSessionBindingElement()
    reliableSession.Ordered = True

    Dim httpTransport As New HttpTransportBindingElement()
    httpTransport.AuthenticationScheme = System.Net.AuthenticationSchemes.Anonymous
    httpTransport.HostNameComparisonMode = HostNameComparisonMode.StrongWildcard

    Dim binding As New CustomBinding(reliableSession, httpTransport)

    ' Add an endpoint using that binding.
    serviceHost.AddServiceEndpoint(GetType(ICalculator), binding, "")

    ' Add a MEX endpoint.
    Dim smb As New ServiceMetadataBehavior()
    smb.HttpGetEnabled = True
    smb.HttpGetUrl = New Uri("http://localhost:8001/servicemodelsamples")
    serviceHost.Description.Behaviors.Add(smb)

    ' Open the ServiceHostBase to create listeners and start listening for messages.
    serviceHost.Open()

    ' The service can now be accessed.
    Console.WriteLine("The service is ready.")
    Console.WriteLine("Press <ENTER> to terminate service.")
    Console.WriteLine()
    Console.ReadLine()

    ' Close the ServiceHostBase to shutdown the service.
    serviceHost.Close()
End Using

HttpTransportBindingElement kann auch in einer Konfigurationsdatei verwendet werden, wie in der folgenden Konfiguration dargestellt.

<bindings>
  <customBinding>
    <binding name="Binding1">
      <reliableSession acknowledgementInterval="00:00:00.2000000" enableFlowControl="true"
                        maxTransferWindowSize="32" inactivityTimeout="00:10:00" maxPendingChannels="128"
                        maxRetryCount="8" ordered="true" />
      <security mode="None"/>
      <httpTransport authenticationScheme="Anonymous" bypassProxyOnLocal="false"
                    hostNameComparisonMode="StrongWildcard"
                    proxyAuthenticationScheme="Anonymous" realm=""
                    useDefaultWebProxy="true" />
    </binding>
  </customBinding>
</bindings>

Hinweise

Die HttpTransportBindingElement Klasse ist der Ausgangspunkt zum Erstellen einer benutzerdefinierten Bindung, die das HTTP-Transportprotokoll implementiert. HTTP ist der primäre Transport, der für Interoperabilitätszwecke verwendet wird. Dieser Transport wird von Windows Communication Foundation (WCF) unterstützt, um die Interoperabilität mit anderen Nicht-WCF-Webdienststapeln sicherzustellen.

Das WCF-Dienstmodell verwendet diese Klasse, um Factoryobjekte zu erstellen, die die IChannelFactory Und IChannelListener Schnittstellen implementieren. Diese Factoryobjekte erstellen wiederum die Kanäle und Listener, die SOAP-Nachrichten mithilfe des HTTP-Protokolls übertragen.

Sie konfigurieren die Fabriken, die diese Klasse erstellt, indem Sie ihre Eigenschaften festlegen, z AuthenticationScheme. B. , HostNameComparisonModeund MaxBufferSize.

Sie können auch Eigenschaften für die Basisklasse festlegen, TransportBindingElementzManualAddressing. B. , und MaxBufferPoolSizeMaxReceivedMessageSize. Eine vollständige Liste der Eigenschaften finden Sie unter TransportBindingElement.

Konstruktoren

Name Beschreibung
HttpTransportBindingElement()

Initialisiert eine neue Instanz der HttpTransportBindingElement-Klasse.

HttpTransportBindingElement(HttpTransportBindingElement)

Initialisiert eine neue Instanz der HttpTransportBindingElement Klasse mithilfe eines anderen Bindungselements.

Eigenschaften

Name Beschreibung
AllowCookies

Dient zum Abrufen oder Festlegen eines Werts, der angibt, ob der Client Cookies akzeptiert und an zukünftige Anforderungen weitergibt.

AuthenticationScheme

Ruft das Authentifizierungsschema ab, das zum Authentifizieren von Clientanforderungen verwendet wird, die von einem HTTP-Listener verarbeitet werden, oder legt dieses fest.

BypassProxyOnLocal

Dient zum Abrufen oder Festlegen eines Werts, der angibt, ob Proxys für lokale Adressen ignoriert werden.

DecompressionEnabled

Ruft ab oder legt fest, ob der Prozess zum Zurückgeben von komprimierten Nachrichtendaten in die ursprüngliche Größe und das Format aktiviert ist.

ExtendedProtectionPolicy

Dient zum Abrufen oder Festlegen des Werts der erweiterten Sicherheitsrichtlinie, die vom Server zum Überprüfen eingehender Clientverbindungen verwendet wird.

HostNameComparisonMode

Dient zum Abrufen oder Festlegen eines Werts, der angibt, ob der Hostname verwendet wird, um den Dienst zu erreichen, wenn er für den URI abgleicht.

KeepAliveEnabled

Dient zum Abrufen oder Festlegen eines Werts, der angibt, ob eine dauerhafte Verbindung mit einem Dienstendpunkt hergestellt werden soll.

ManualAddressing

Dient zum Abrufen oder Festlegen eines Werts, der angibt, ob eine manuelle Adressierung der Nachricht erforderlich ist.

(Geerbt von TransportBindingElement)
MaxBufferPoolSize

Ruft die maximale Größe in Byte aller Pufferpools ab, die vom Transport verwendet werden, oder legt diese fest.

(Geerbt von TransportBindingElement)
MaxBufferSize

Ruft die maximale Größe des zu verwendenden Puffers ab oder legt diese fest. Bei gepufferten Nachrichten ist dieser Wert identisch mit MaxReceivedMessageSize. Bei gestreamten Nachrichten ist dieser Wert die maximale Größe der SOAP-Header, die im Puffermodus gelesen werden müssen.

MaxPendingAccepts

Ruft die maximale Anzahl von Verbindungen ab, die der Dienst gleichzeitig akzeptieren kann, oder legt diese fest.

MaxReceivedMessageSize

Ruft die maximal zulässige Nachrichtengröße in Bytes ab, die empfangen werden kann, oder legt diese fest.

(Geerbt von TransportBindingElement)
MessageHandlerFactory

Ruft die Http-Transportnachrichtenhandlerfactory ab oder legt sie fest.

Proxy

Stellt das Bindungselement dar, das zum Angeben eines HTTP-Transports für die Übertragung von Nachrichten verwendet wird.

ProxyAddress

Dient zum Abrufen oder Festlegen eines URI, der die Adresse des Proxys enthält, der für HTTP-Anforderungen verwendet werden soll.

ProxyAuthenticationScheme

Ruft das Authentifizierungsschema ab, das zum Authentifizieren von Clientanforderungen verwendet wird, die von einem HTTP-Proxy verarbeitet werden, oder legt dieses fest.

Realm

Ruft den Authentifizierungsbereich ab oder legt den Authentifizierungsbereich fest.

RequestInitializationTimeout

Dient zum Abrufen oder Festlegen des angeforderten Initialisierungszeitlimits.

Scheme

Ruft das URI-Schema für den Transport ab.

TransferMode

Ruft den Übertragungsmodus ab oder legt diesen fest.

UnsafeConnectionNtlmAuthentication

Dient zum Abrufen oder Festlegen eines Werts, der angibt, ob die unsichere Verbindungsfreigabe auf dem Server aktiviert ist. Wenn diese Option aktiviert ist, wird die NTLM-Authentifizierung einmal für jede TCP-Verbindung ausgeführt.

UseDefaultWebProxy

Dient zum Abrufen oder Festlegen eines Werts, der angibt, ob die computerweiten Proxyeinstellungen anstelle der benutzerspezifischen Einstellungen verwendet werden.

WebSocketSettings

Ruft die Websocketkonfiguration des Bindungselements ab oder legt sie fest.

Methoden

Name Beschreibung
BuildChannelFactory<TChannel>(BindingContext)

Erstellt eine Kanalfactory, die zum Erstellen eines Kanals verwendet werden kann.

BuildChannelListener<TChannel>(BindingContext)

Erstellt einen Kanallistener des angegebenen Typs.

CanBuildChannelFactory<TChannel>(BindingContext)

Bestimmt, ob eine Kanalfactory des angegebenen Typs erstellt werden kann.

CanBuildChannelListener<TChannel>(BindingContext)

Bestimmt, ob ein Kanallistener des angegebenen Typs erstellt werden kann.

Clone()

Erstellt eine neue Instanz, die eine Kopie des aktuellen Bindungselements ist.

Equals(Object)

Bestimmt, ob das angegebene Objekt dem aktuellen Objekt entspricht.

(Geerbt von Object)
GetHashCode()

Dient als Standardhashfunktion.

(Geerbt von Object)
GetProperty<T>(BindingContext)

Ruft eine Eigenschaft aus dem angegebenen BindingContextab.

GetType()

Ruft die Type der aktuellen Instanz ab.

(Geerbt von Object)
MemberwiseClone()

Erstellt eine flache Kopie der aktuellen Object.

(Geerbt von Object)
ShouldSerializeExtendedProtectionPolicy()

Gibt einen Wertindicating zurück, dass xaml die erweiterte Schutzrichtlinie nicht serialisieren kann.

ShouldSerializeMessageHandlerFactory()

Bestimmt, ob die Nachrichtenhandlerfactory serialisiert werden soll.

ShouldSerializeWebSocketSettings()

Bestimmt, ob die Websocketeinstellungen serialisiert werden sollen.

ToString()

Gibt eine Zeichenfolge zurück, die das aktuelle Objekt darstellt.

(Geerbt von Object)
UpdateAuthenticationSchemes(BindingContext)

Aktualisiert die Transportauthentifizierungsschemas, die den Bindungskontext enthalten.

Explizite Schnittstellenimplementierungen

Name Beschreibung
IPolicyExportExtension.ExportPolicy(MetadataExporter, PolicyConversionContext)

Exportiert eine benutzerdefinierte Richtlinien assertion zu Bindungen.

IWsdlExportExtension.ExportContract(WsdlExporter, WsdlContractConversionContext)

Schreibt benutzerdefinierte Web Services Description Language (WSDL)-Elemente in die generierte WSDL für einen Vertrag.

IWsdlExportExtension.ExportEndpoint(WsdlExporter, WsdlEndpointConversionContext)

Schreibt benutzerdefinierte Web Services Description Language (WSDL)-Elemente in die generierte WSDL für einen Endpunkt.

Gilt für: