ReliableSessionBindingElement 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 che può produrre i canali di invio e ricezione necessari per una sessione affidabile tra endpoint.
public ref class ReliableSessionBindingElement sealed : System::ServiceModel::Channels::BindingElement
public ref class ReliableSessionBindingElement sealed : System::ServiceModel::Channels::BindingElement, System::ServiceModel::Description::IPolicyExportExtension
public sealed class ReliableSessionBindingElement : System.ServiceModel.Channels.BindingElement
public sealed class ReliableSessionBindingElement : System.ServiceModel.Channels.BindingElement, System.ServiceModel.Description.IPolicyExportExtension
type ReliableSessionBindingElement = class
inherit BindingElement
type ReliableSessionBindingElement = class
inherit BindingElement
interface IPolicyExportExtension
Public NotInheritable Class ReliableSessionBindingElement
Inherits BindingElement
Public NotInheritable Class ReliableSessionBindingElement
Inherits BindingElement
Implements IPolicyExportExtension
- Ereditarietà
- Implementazioni
Esempio
La classe ReliableSessionBindingElement può essere aggiunta a qualsiasi associazione personalizzata. A tal scopo è necessario utilizzare gli elementi di configurazione seguenti.
<bindings>
<customBinding>
<binding configurationName="ReliabilityHTTP">
<reliableSession/>
</binding>
</customBinding>
</bindings>
Il codice di esempio riportato di seguito illustra come utilizzare la classe ReliableSessionBindingElement nel codice.
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
Commenti
Fornisce le sessioni e il recapito dei messaggi ordinato (facoltativo). Questa sessione implementata può attraversare intermediari SOAP e di trasporto.
Ogni elemento di associazione rappresenta una fase di elaborazione durante l'invio o la ricezione di messaggi. In fase di esecuzione gli elementi di associazione creano le channel factory e i listener necessari per compilare stack di canali in uscita e in ingresso richiesti per l'invio e la ricezione di messaggi. La classe ReliableSessionBindingElement fornisce un livello facoltativo nello stack che può stabilire una sessione affidabile tra endpoint e configurare il comportamento di questa sessione.
La classe ReliableSessionBindingElement viene fornita nelle associazioni standard riportate nella tabella seguente.
Binding | Impostazione predefinita |
---|---|
NetTcpBinding | Off |
WSHttpBinding | Off |
WSDualHttpBinding | On (obbligatorio) |
Costruttori
ReliableSessionBindingElement() |
Inizializza una nuova istanza della classe ReliableSessionBindingElement. |
ReliableSessionBindingElement(Boolean) |
Inizializza una nuova istanza della classe ReliableSessionBindingElement che specifica se l'ordine di recapito dei messaggi deve rispettare l'ordine di invio. |
Proprietà
AcknowledgementInterval |
Ottiene o imposta l'intervallo di attesa prima che un acknowledgment venga inviato da una destinazione all'origine del messaggio su canali attendibili creati dalla factory. |
FlowControlEnabled |
Ottiene o imposta un valore che indica se per la sessione affidabile è abilitato il controllo di flusso. |
InactivityTimeout |
Ottiene o imposta l'intervallo di tempo massimo per cui un servizio può rimanere inattivo prima di essere chiuso. |
MaxPendingChannels |
Ottiene o imposta il numero massimo di canali che possono essere in sospeso durante la sessione affidabile. |
MaxRetryCount |
Ottiene o imposta il numero massimo di tentativi di trasferimento di un messaggio durante la sessione affidabile. |
MaxTransferWindowSize |
Ottiene o imposta il numero massimo di messaggi che possono essere presenti nel buffer di invio o nel buffer di ricezione. |
Ordered |
Ottiene o imposta un valore che indica se il recapito dei messaggi deve rispettare l'ordine in cui i messaggi vengono inviati. |
ReliableMessagingVersion |
Ottiene o imposta la versione di WS-ReliableMessaging specificata dall'elemento di associazione. |
Metodi
BuildChannelFactory<TChannel>(BindingContext) |
Restituisce una factory che crea un canale di un tipo specificato che supporta una sessione affidabile. |
BuildChannelListener<TChannel>(BindingContext) |
Restituisce un listener che accetta un canale di un tipo specificato che supporta una sessione affidabile. |
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) |
Restituisce un valore che indica se la channel factory può essere creata per il canale e il contesto forniti che possono supportare una sessione affidabile. |
CanBuildChannelListener<TChannel>(BindingContext) |
Restituisce un valore che indica se il listener del canale può essere compilato per il canale e il contesto forniti che possono supportare una sessione affidabile. |
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 copia dell'elemento di associazione della sessione affidabile 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à del tipo specificato dal relativo contesto di associazione. |
GetType() |
Ottiene l'oggetto Type dell'istanza corrente. (Ereditato da Object) |
MemberwiseClone() |
Crea una copia superficiale dell'oggetto Object corrente. (Ereditato da Object) |
ToString() |
Restituisce una stringa che rappresenta l'oggetto corrente. (Ereditato da Object) |
Implementazioni dell'interfaccia esplicita
IPolicyExportExtension.ExportPolicy(MetadataExporter, PolicyConversionContext) |
Esegue il mapping delle informazioni contenute nell'elemento di associazione della sessione affidabile negli elementi WSDL che consentono a un endpoint remoto di accedere al servizio con una sessione affidabile. |