ReliableSessionBindingElement Clase
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
Representa el elemento de enlace que puede generar los canales de envío y recepción requeridos para una sesión confiable entre los puntos de conexión.
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
- Herencia
- Implementaciones
Ejemplos
ReliableSessionBindingElement se puede agregar a cualquier enlace personalizado. Esto se hace utilizando los elementos de configuración siguientes.
<bindings>
<customBinding>
<binding configurationName="ReliabilityHTTP">
<reliableSession/>
</binding>
</customBinding>
</bindings>
En el ejemplo de código siguiente se muestra cómo usar ReliableSessionBindingElement en el código.
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
Comentarios
Proporciona las sesiones y puede permitir, si se desea, la entrega ordenada de mensajes. Esta sesión implementada puede cruzar SOAP y los intermediarios de transporte.
Cada elemento de enlace representa un paso del procesamiento al enviar y recibir mensajes. En tiempo de ejecución, los elementos de enlace crean los generadores de canales y las escuchas que son necesarios para compilar pilas de canal entrantes y salientes necesarias para enviar y recibir los mensajes. ReliableSessionBindingElement proporciona un nivel opcional en la pila que puede establecer una sesión confiable entre los extremos y configurar el comportamiento de esta sesión.
ReliableSessionBindingElement se proporciona en los enlaces estándar en la tabla siguiente.
Enlace | Default |
---|---|
NetTcpBinding | Desactivado |
WSHttpBinding | Desactivado |
WSDualHttpBinding | On (se requiere) |
Constructores
ReliableSessionBindingElement() |
Inicializa una nueva instancia de la clase ReliableSessionBindingElement. |
ReliableSessionBindingElement(Boolean) |
Inicializa una instancia nueva de la clase ReliableSessionBindingElement que especifica si la entrega del mensaje debe conservar el orden en el que se envían los mensajes. |
Propiedades
AcknowledgementInterval |
Obtiene o establece el intervalo de tiempo que un destino espera antes de enviar una confirmación al origen del mensaje en canales de confianza creados por el generador. |
FlowControlEnabled |
Obtiene o establece un valor que indica si la sesión confiable tiene habilitado el control de flujo. |
InactivityTimeout |
Obtiene o establece un intervalo de tiempo durante el que un servicio permanece inactivo antes de cerrarse. |
MaxPendingChannels |
Obtiene o establece el número máximo de canales que pueden estar pendientes durante la sesión confiable. |
MaxRetryCount |
Obtiene o establece el número máximo de veces que se intenta transferir un mensaje durante la sesión confiable. |
MaxTransferWindowSize |
Obtiene o establece o el número máximo de mensajes que pueden existir en el búfer de envío o en el búfer de recepción. |
Ordered |
Obtiene o establece un valor que indica si la entrega del mensaje debe conservar el orden en el que se envían los mensajes. |
ReliableMessagingVersion |
Obtiene o establece la versión de WS-ReliableMessaging especificada por el elemento de enlace. |
Métodos
BuildChannelFactory<TChannel>(BindingContext) |
Devuelve un generador que crea un canal de un tipo especificado que admite una sesión confiable. |
BuildChannelListener<TChannel>(BindingContext) |
Devuelve un tipo de escucha que acepta un canal de un tipo especificado que admite una sesión confiable. |
BuildChannelListener<TChannel>(BindingContext) |
Inicializa una escucha de canales para aceptar canales de un tipo especificado a partir del contexto de enlace. (Heredado de BindingElement) |
CanBuildChannelFactory<TChannel>(BindingContext) |
Devuelve un valor que indica si el generador de canales se puede compilar para el canal y el contexto siempre que pueda admitir una sesión confiable. |
CanBuildChannelListener<TChannel>(BindingContext) |
Devuelve un valor que indica si la escucha de canales se puede crear para el canal y el contexto siempre que pueda admitir una sesión confiable. |
CanBuildChannelListener<TChannel>(BindingContext) |
Devuelve un valor que indica si el elemento de enlace puede compilar una escucha para un tipo específico de canal. (Heredado de BindingElement) |
Clone() |
Crea una copia del elemento de enlace de la sesión confiable actual. |
Equals(Object) |
Determina si el objeto especificado es igual que el objeto actual. (Heredado de Object) |
GetHashCode() |
Sirve como la función hash predeterminada. (Heredado de Object) |
GetProperty<T>(BindingContext) |
Obtiene una propiedad del tipo especificado de su contexto de enlace. |
GetType() |
Obtiene el Type de la instancia actual. (Heredado de Object) |
MemberwiseClone() |
Crea una copia superficial del Object actual. (Heredado de Object) |
ToString() |
Devuelve una cadena que representa el objeto actual. (Heredado de Object) |
Implementaciones de interfaz explícitas
IPolicyExportExtension.ExportPolicy(MetadataExporter, PolicyConversionContext) |
Asigna la información contenida en el elemento de enlace de la sesión confiable en los elementos de WSDL que permiten a un extremo remoto tener acceso al servicio con una sesión confiable. |