Compartilhar via


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 os pontos de extremidade.

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
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 os intermediários soap e de transporte.

Cada elemento de associação representa uma etapa de processamento ao enviar ou receber mensagens. No 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 Padrão
NetTcpBinding Desativado
WSHttpBinding Desativado
WSDualHttpBinding Ativado (obrigatório)

Construtores

ReliableSessionBindingElement()

Inicializa uma nova instância da classe ReliableSessionBindingElement.

ReliableSessionBindingElement(Boolean)

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

Propriedades

AcknowledgementInterval

Obtém ou define o intervalo de tempo que um destino aguarda antes de enviar uma confirmação para a origem 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 durante o qual um serviço permanece inativo antes de ser fechado.

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

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.

BuildChannelListener<TChannel>(BindingContext)

Inicializa um ouvinte de canais para aceitar canais de um tipo especificado do contexto de associação.

(Herdado de BindingElement)
CanBuildChannelFactory<TChannel>(BindingContext)

Retorna um valor que indica se a fábrica de canais pode ser compilada 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 canais pode ser compilado 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 elemento de associação pode criar um ouvinte para um tipo de canal específico.

(Herdado de BindingElement)
Clone()

Cria uma cópia do elemento de associação da 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 de hash padrão.

(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 Object atual.

(Herdado de Object)
ToString()

Retorna uma cadeia de caracteres que representa o objeto atual.

(Herdado de Object)

Implantações explícitas de interface

IPolicyExportExtension.ExportPolicy(MetadataExporter, PolicyConversionContext)

Mapeia as informações contidas no elemento de associação da 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