HttpTransportBindingElement Classe

Definizione

Rappresenta l'elemento di associazione utilizzato per specificare un trasporto HTTP per trasmettere 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
type HttpTransportBindingElement = class
    inherit TransportBindingElement
    interface IPolicyExportExtension
    interface IWsdlExportExtension
Public Class HttpTransportBindingElement
Inherits TransportBindingElement
Public Class HttpTransportBindingElement
Inherits TransportBindingElement
Implements IPolicyExportExtension, IWsdlExportExtension
Ereditarietà
HttpTransportBindingElement
Derivato
Implementazioni

Esempio

Nel codice seguente viene illustrato come utilizzare HttpTransportBindingElement in modo imperativo.

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 classe HttpTransportBindingElement costituisce il punto di partenza per la creazione di un'associazione personalizzata che implementi il protocollo di trasporto HTTP. Quest'ultimo è il principale trasporto 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 creano, a loro volta, i canali e i listener che trasmettono messaggi SOAP utilizzando il protocollo HTTP.

Configurare le factory create da questa classe impostandone le proprietà, ad esempio AuthenticationScheme, HostNameComparisonMode e MaxBufferSize.

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

Costruttori

HttpTransportBindingElement()

Inizializza una nuova istanza della classe HttpTransportBindingElement.

HttpTransportBindingElement(HttpTransportBindingElement)

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

Proprietà

AllowCookies

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

AuthenticationScheme

Ottiene o imposta lo schema di autenticazione utilizzato per autenticare 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 per il ripristino delle dimensione e dell formato originali dei dati del messaggio compressi è abilitato.

ExtendedProtectionPolicy

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

HostNameComparisonMode

Ottiene o imposta un valore che indica se viene utilizzato il nome host per raggiungere il servizio in caso di corrispondenza dell'URI.

KeepAliveEnabled

Ottiene o imposta un valore che indica se eseguire una connessione permanente a un endpoint del servizio.

LegacyExtendedProtectionPolicy
ManualAddressing

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

(Ereditato da TransportBindingElement)
MaxBufferPoolSize

Ottiene o imposta le dimensioni massime in byte di qualsiasi pool di buffer utilizzato dal trasporto.

(Ereditato da TransportBindingElement)
MaxBufferSize

Ottiene o imposta la dimensione massima del buffer da utilizzare. Per i messaggi memorizzati nel buffer questo valore corrisponde al valore MaxReceivedMessageSize. Per i messaggi inviati in un flusso questo valore corrisponde alla dimensione massima delle intestazioni SOAP, che deve essere letta in modalità di memorizzazione nel buffer.

MaxPendingAccepts

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

MaxReceivedMessageSize

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

(Ereditato da TransportBindingElement)
MessageHandlerFactory

Ottiene o imposta la factory di gestori di messaggi di trasporto HTTP.

Proxy
ProxyAddress

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

ProxyAuthenticationScheme

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

Realm

Ottiene o imposta l'area di autenticazione.

RequestInitializationTimeout

Ottiene o imposta il timeout dell'inizializzazione richiesta.

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 nel server è abilitata la condivisione di connessioni non sicure. Se abilitata, l'autenticazione NTLM viene eseguita una volta su ogni connessione TCP.

UseDefaultWebProxy

Ottiene o imposta un valore che indica se vengono utilizzate impostazioni proxy a livello di computer invece delle impostazioni utente specifiche.

WebSocketSettings

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

Metodi

BuildChannelFactory<TChannel>(BindingContext)

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

BuildChannelListener<TChannel>(BindingContext)

Crea un listener del canale del tipo specificato.

BuildChannelListener<TChannel>(BindingContext)

Inizializza un listener del canale per accettare canali di un tipo specificato dal contesto dell'associazione.

(Ereditato da BindingElement)
CanBuildChannelFactory<TChannel>(BindingContext)

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

CanBuildChannelListener<TChannel>(BindingContext)

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

CanBuildChannelListener<TChannel>(BindingContext)

Restituisce un valore che indica se l'elemento di associazione può compilare un listener per un tipo di canale specifico.

(Ereditato da BindingElement)
Clone()

Crea una nuova istanza che è 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à dal BindingContext specificato.

GetType()

Ottiene l'oggetto Type dell'istanza corrente.

(Ereditato da Object)
MemberwiseClone()

Crea una copia superficiale dell'oggetto Object corrente.

(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 socket Web devono essere serializzate.

ToString()

Restituisce una stringa che rappresenta l'oggetto corrente.

(Ereditato da Object)
UpdateAuthenticationSchemes(BindingContext)

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

Implementazioni dell'interfaccia esplicita

IPolicyExportExtension.ExportPolicy(MetadataExporter, PolicyConversionContext)

Esporta un'asserzione di criteri personalizzata relativa ad 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 WSDL generato per un endpoint.

Si applica a