ReliableSessionBindingElement Clase

Definición

Representa el elemento de enlace que puede generar los canales de envío y recepción necesarios para una sesión confiable entre puntos de conexión.

public ref class ReliableSessionBindingElement sealed : System::ServiceModel::Channels::BindingElement, System::ServiceModel::Description::IPolicyExportExtension
public sealed class ReliableSessionBindingElement : System.ServiceModel.Channels.BindingElement, System.ServiceModel.Description.IPolicyExportExtension
type ReliableSessionBindingElement = class
    inherit BindingElement
    interface IPolicyExportExtension
Public NotInheritable Class ReliableSessionBindingElement
Inherits BindingElement
Implements IPolicyExportExtension
Herencia
ReliableSessionBindingElement
Implementaciones

Ejemplos

ReliableSessionBindingElement se puede agregar a cualquier enlace personalizado. Esto se hace mediante los siguientes elementos de configuración.

<bindings>
    <customBinding>
        <binding configurationName="ReliabilityHTTP">
            <reliableSession/>
        </binding>
    </customBinding>
</bindings>

En el código de ejemplo 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 sesiones y, opcionalmente, proporciona entrega ordenada de mensajes. Esta sesión implementada puede cruzar soap e intermediarios de transporte.

Cada elemento de enlace representa un paso de procesamiento al enviar o recibir mensajes. En tiempo de ejecución, los elementos de enlace crean los generadores de canales y los agentes de escucha necesarios para crear pilas de canales salientes y entrantes necesarias para enviar y recibir mensajes. ReliableSessionBindingElement proporciona una capa opcional en la pila que puede establecer una sesión confiable entre los puntos de conexión y configurar el comportamiento de esta sesión.

ReliableSessionBindingElement se proporciona en los enlaces estándar de la tabla siguiente.

Binding Predeterminado
NetTcpBinding Desactivado
WSHttpBinding Desactivado
WSDualHttpBinding Activado (obligatorio)

Constructores

Nombre Description
ReliableSessionBindingElement()

Inicializa una nueva instancia de la clase ReliableSessionBindingElement.

ReliableSessionBindingElement(Boolean)

Inicializa una nueva instancia de la ReliableSessionBindingElement clase que especifica si la entrega de mensajes debe conservar el orden en el que se envían los mensajes.

Propiedades

Nombre Description
AcknowledgementInterval

Obtiene o establece el intervalo de tiempo que espera un destino antes de enviar una confirmación al origen del mensaje en canales confiables 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 que un servicio permanece inactivo antes de cerrarse.

MaxPendingChannels

Obtiene o establece el mayor número de canales que pueden estar pendientes durante la sesión confiable.

MaxRetryCount

Obtiene o establece el número máximo de veces que un mensaje intenta transferirse durante la sesión confiable.

MaxTransferWindowSize

Obtiene o establece el mayor número 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 de mensajes 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

Nombre Description
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 agente de escucha que acepta un canal de un tipo especificado que admite una sesión confiable.

CanBuildChannelFactory<TChannel>(BindingContext)

Devuelve un valor que indica si el generador de canales se puede compilar para el canal y el contexto proporcionados que pueden admitir una sesión confiable.

CanBuildChannelListener<TChannel>(BindingContext)

Devuelve un valor que indica si el agente de escucha del canal se puede compilar para el canal y el contexto proporcionados que pueden admitir una sesión confiable.

Clone()

Crea una copia del elemento de enlace de sesión confiable actual.

Equals(Object)

Determina si el objeto especificado es igual al objeto actual.

(Heredado de Object)
GetHashCode()

Actúa como la función hash predeterminada.

(Heredado de Object)
GetProperty<T>(BindingContext)

Obtiene una propiedad del tipo especificado a partir de su contexto de enlace.

GetType()

Obtiene el Type de la instancia actual.

(Heredado de Object)
MemberwiseClone()

Crea una copia superficial del Objectactual.

(Heredado de Object)
ToString()

Devuelve una cadena que representa el objeto actual.

(Heredado de Object)

Implementaciones de interfaz explícitas

Nombre Description
IPolicyExportExtension.ExportPolicy(MetadataExporter, PolicyConversionContext)

Asigna la información contenida en el elemento de enlace de sesión confiable a los elementos WSDL que permiten que un punto de conexión remoto acceda al servicio con una sesión confiable.

Se aplica a