Condividi tramite


HttpTransportBindingElement Classe

Definizione

Rappresenta l'elemento di associazione utilizzato per specificare un trasporto HTTP per la trasmissione di messaggi.

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
Ereditarietà
HttpTransportBindingElement
Derivato
Implementazioni

Esempio

Nel codice seguente viene illustrato come usare in modo imperativo .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 può essere usato anche in un file di configurazione, come illustrato nella configurazione seguente.

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

Commenti

La HttpTransportBindingElement classe è il punto di partenza per la creazione di un'associazione personalizzata che implementa il protocollo di trasporto HTTP. HTTP è il trasporto primario usato per scopi di interoperabilità. Questo trasporto è supportato da Windows Communication Foundation (WCF) per garantire l'interoperabilità con altri stack di servizi Web non WCF.

Il modello di servizio WCF usa questa classe per creare oggetti factory che implementano le IChannelFactory interfacce e IChannelListener . Questi oggetti factory, a loro volta, creano i canali e i listener che trasmettono messaggi SOAP usando il protocollo HTTP.

Per configurare le factory create da questa classe, impostare le relative proprietà, ad esempio AuthenticationScheme, HostNameComparisonModee MaxBufferSize.

È anche possibile impostare proprietà sulla classe base, TransportBindingElement, ad esempio ManualAddressing, MaxReceivedMessageSizee MaxBufferPoolSize. Per un elenco completo delle proprietà, vedere TransportBindingElement.

Costruttori

Nome Descrizione
HttpTransportBindingElement()

Inizializza una nuova istanza della classe HttpTransportBindingElement.

HttpTransportBindingElement(HttpTransportBindingElement)

Inizializza una nuova istanza della HttpTransportBindingElement classe utilizzando un altro elemento di associazione.

Proprietà

Nome Descrizione
AllowCookies

Ottiene o imposta un valore che indica se il client accetta i cookie e li propaga alle richieste future.

AuthenticationScheme

Ottiene o imposta lo schema di autenticazione utilizzato per autenticare le richieste client elaborate da un listener HTTP.

BypassProxyOnLocal

Ottiene o imposta un valore che indica se i proxy vengono ignorati per gli indirizzi locali.

DecompressionEnabled

Ottiene o imposta un valore che indica se il processo di restituzione dei dati del messaggio compressi alle dimensioni e al formato originali è abilitato.

ExtendedProtectionPolicy

Ottiene o imposta il valore dei criteri di sicurezza estesi utilizzati dal server per convalidare le connessioni client in ingresso.

HostNameComparisonMode

Ottiene o imposta un valore che indica se il nome host viene utilizzato per raggiungere il servizio quando corrisponde all'URI.

KeepAliveEnabled

Ottiene o imposta un valore che indica se stabilire una connessione permanente a un endpoint di servizio.

ManualAddressing

Ottiene o imposta un valore che indica se è necessario l'indirizzamento manuale del messaggio.

(Ereditato da TransportBindingElement)
MaxBufferPoolSize

Ottiene o imposta le dimensioni massime, in byte, di tutti i pool di buffer utilizzati dal trasporto.

(Ereditato da TransportBindingElement)
MaxBufferSize

Ottiene o imposta la dimensione massima del buffer da utilizzare. Per i messaggi memorizzati nel buffer questo valore è uguale MaxReceivedMessageSizea . Per i messaggi trasmessi, questo valore è la dimensione massima delle intestazioni SOAP, che devono essere lette in modalità memorizzata nel buffer.

MaxPendingAccepts

Ottiene o imposta il numero massimo di connessioni che il servizio può accettare contemporaneamente.

MaxReceivedMessageSize

Ottiene o imposta la dimensione massima consentita del messaggio, espressa in byte, che può essere ricevuta.

(Ereditato da TransportBindingElement)
MessageHandlerFactory

Ottiene o imposta la factory del gestore dei messaggi di trasporto Http.

Proxy

Rappresenta l'elemento di associazione utilizzato per specificare un trasporto HTTP per la trasmissione di messaggi.

ProxyAddress

Ottiene o imposta un URI che contiene l'indirizzo del proxy da usare per le richieste HTTP.

ProxyAuthenticationScheme

Ottiene o imposta lo schema di autenticazione utilizzato per autenticare le richieste client elaborate da un proxy HTTP.

Realm

Ottiene o imposta l'area di autenticazione.

RequestInitializationTimeout

Ottiene o imposta il timeout di inizializzazione richiesto.

Scheme

Ottiene lo schema URI per il trasporto.

TransferMode

Ottiene o imposta la modalità di trasferimento.

UnsafeConnectionNtlmAuthentication

Ottiene o imposta un valore che indica se la condivisione connessione non sicura è abilitata nel server. Se abilitata, l'autenticazione NTLM viene eseguita una sola volta su ogni connessione TCP.

UseDefaultWebProxy

Ottiene o imposta un valore che indica se vengono utilizzate le impostazioni proxy a livello di computer anziché le impostazioni specifiche dell'utente.

WebSocketSettings

Ottiene o imposta la configurazione del web socket dell'elemento di associazione.

Metodi

Nome Descrizione
BuildChannelFactory<TChannel>(BindingContext)

Crea una channel factory che può essere usata per creare un canale.

BuildChannelListener<TChannel>(BindingContext)

Crea un listener del canale del tipo specificato.

CanBuildChannelFactory<TChannel>(BindingContext)

Determina se è possibile compilare una channel factory del tipo specificato.

CanBuildChannelListener<TChannel>(BindingContext)

Determina se è possibile compilare un listener di canale del tipo specificato.

Clone()

Crea una nuova istanza che rappresenta una copia dell'elemento di associazione corrente.

Equals(Object)

Determina se l'oggetto specificato è uguale all'oggetto corrente.

(Ereditato da Object)
GetHashCode()

Funge da funzione hash predefinita.

(Ereditato da Object)
GetProperty<T>(BindingContext)

Ottiene una proprietà dall'oggetto specificato BindingContext.

GetType()

Ottiene il Type dell'istanza corrente.

(Ereditato da Object)
MemberwiseClone()

Crea una copia superficiale del Objectcorrente.

(Ereditato da Object)
ShouldSerializeExtendedProtectionPolicy()

Restituisce un valore che indica che non è possibile serializzare in XAML i criteri di protezione estesa.

ShouldSerializeMessageHandlerFactory()

Determina se la factory del gestore messaggi deve essere serializzata.

ShouldSerializeWebSocketSettings()

Determina se le impostazioni del web socket devono essere serializzate.

ToString()

Restituisce una stringa che rappresenta l'oggetto corrente.

(Ereditato da Object)
UpdateAuthenticationSchemes(BindingContext)

Aggiorna gli schemi di autenticazione del trasporto che contengono il contesto di associazione.

Implementazioni dell'interfaccia esplicita

Nome Descrizione
IPolicyExportExtension.ExportPolicy(MetadataExporter, PolicyConversionContext)

Esporta un'asserzione di criteri personalizzata sulle associazioni.

IWsdlExportExtension.ExportContract(WsdlExporter, WsdlContractConversionContext)

Scrive elementi WSDL (Web Services Description Language) personalizzati nel WSDL generato per un contratto.

IWsdlExportExtension.ExportEndpoint(WsdlExporter, WsdlEndpointConversionContext)

Scrive elementi WSDL (Web Services Description Language) personalizzati nel file WSDL generato per un endpoint.

Si applica a