ReliableSessionBindingElement Classe

Definição

Representa o elemento de associação que pode produzir os canais de envio e recebimento necessários para uma sessão confiável entre pontos de extremidade.

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
Herança
ReliableSessionBindingElement
Implementações

Exemplos

Pode ReliableSessionBindingElement ser adicionado a qualquer associação personalizada. Isso é feito usando os seguintes elementos de configuração.

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

O código de exemplo a seguir demonstra como usar ReliableSessionBindingElement no 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

Comentários

Fornece sessões e, opcionalmente, fornece entrega de mensagens ordenadas. Essa sessão implementada pode cruzar soap e intermediários de transporte.

Cada elemento de associação representa uma etapa de processamento ao enviar ou receber mensagens. Em runtime, os elementos de associação criam as fábricas de canais e os ouvintes necessários para criar pilhas de canal de saída e de entrada necessárias para enviar e receber mensagens. Ele ReliableSessionBindingElement fornece uma camada opcional na pilha que pode estabelecer uma sessão confiável entre pontos de extremidade e configurar o comportamento desta sessão.

As ReliableSessionBindingElement associações padrão são fornecidas na tabela a seguir.

Associação Default
NetTcpBinding Desativado
WSHttpBinding Desativado
WSDualHttpBinding Ativado (obrigatório)

Construtores

Nome Description
ReliableSessionBindingElement()

Inicializa uma nova instância da classe ReliableSessionBindingElement.

ReliableSessionBindingElement(Boolean)

Inicializa uma nova instância da classe que especifica se a ReliableSessionBindingElement entrega de mensagens deve preservar a ordem na qual as mensagens são enviadas.

Propriedades

Nome Description
AcknowledgementInterval

Obtém ou define o intervalo de tempo que um destino aguarda antes de enviar uma confirmação à fonte da mensagem em canais confiáveis criados pela fábrica.

FlowControlEnabled

Obtém ou define um valor que indica se a sessão confiável tem o controle de fluxo habilitado.

InactivityTimeout

Obtém ou define um intervalo de tempo que um serviço permanece inativo antes de fechar.

MaxPendingChannels

Obtém ou define o maior número de canais que podem estar pendentes durante a sessão confiável.

MaxRetryCount

Obtém ou define o número máximo de vezes que uma mensagem tenta ser transferida durante a sessão confiável.

MaxTransferWindowSize

Obtém ou define o maior número de mensagens que podem existir no buffer de envio ou no buffer de recebimento.

Ordered

Obtém ou define um valor que indica se a entrega de mensagens deve preservar a ordem na qual as mensagens são enviadas.

ReliableMessagingVersion

Obtém ou define a versão de WS-ReliableMessaging especificada pelo elemento de associação.

Métodos

Nome Description
BuildChannelFactory<TChannel>(BindingContext)

Retorna uma fábrica que cria um canal de um tipo especificado que dá suporte a uma sessão confiável.

BuildChannelListener<TChannel>(BindingContext)

Retorna um ouvinte que aceita um canal de um tipo especificado que dá suporte a uma sessão confiável.

CanBuildChannelFactory<TChannel>(BindingContext)

Retorna um valor que indica se a fábrica de canais pode ser criada para o canal e o contexto fornecidos que podem dar suporte a uma sessão confiável.

CanBuildChannelListener<TChannel>(BindingContext)

Retorna um valor que indica se o ouvinte de canal pode ser criado para o canal e o contexto fornecidos que podem dar suporte a uma sessão confiável.

Clone()

Cria uma cópia do elemento de associação de sessão confiável atual.

Equals(Object)

Determina se o objeto especificado é igual ao objeto atual.

(Herdado de Object)
GetHashCode()

Serve como a função hash predefinida.

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

Obtém uma propriedade do tipo especificado de seu contexto de associação.

GetType()

Obtém o Type da instância atual.

(Herdado de Object)
MemberwiseClone()

Cria uma cópia superficial do Objectatual.

(Herdado de Object)
ToString()

Retorna uma cadeia de caracteres que representa o objeto atual.

(Herdado de Object)

Implantações explícitas de interface

Nome Description
IPolicyExportExtension.ExportPolicy(MetadataExporter, PolicyConversionContext)

Mapeia as informações contidas no elemento de associação de sessão confiável para os elementos WSDL que permitem que um ponto de extremidade remoto acesse o serviço com uma sessão confiável.

Aplica-se a