HttpTransportBindingElement Classe
Definizione
Importante
Alcune informazioni sono relative alla release non definitiva del prodotto, che potrebbe subire modifiche significative prima della release definitiva. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
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
Public Class HttpTransportBindingElement
Inherits TransportBindingElement
Public Class HttpTransportBindingElement
Inherits TransportBindingElement
Implements IPolicyExportExtension, IWsdlExportExtension
- Ereditarietà
- 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. |
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 |
Rappresenta l'elemento di associazione utilizzato per specificare un trasporto HTTP per trasmettere messaggi. |
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. |