ReliableSessionBindingElement Classe
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
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
- 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. |