ChannelDispatcher 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.
Um componente que aceita canais e os associa a um serviço.
public ref class ChannelDispatcher : System::ServiceModel::Dispatcher::ChannelDispatcherBase
public class ChannelDispatcher : System.ServiceModel.Dispatcher.ChannelDispatcherBase
type ChannelDispatcher = class
inherit ChannelDispatcherBase
Public Class ChannelDispatcher
Inherits ChannelDispatcherBase
- Herança
Exemplos
Uri baseAddress = new Uri("http://localhost:8001/Simple");
ServiceHost serviceHost = new ServiceHost(typeof(CalculatorService), baseAddress);
serviceHost.AddServiceEndpoint(
typeof(ICalculator),
new WSHttpBinding(),
"CalculatorServiceObject");
// Enable MEX.
ServiceMetadataBehavior smb = new ServiceMetadataBehavior();
smb.HttpGetEnabled = true;
serviceHost.Description.Behaviors.Add(smb);
serviceHost.Open();
IChannelListener icl = serviceHost.ChannelDispatchers[0].Listener;
ChannelDispatcher dispatcher = new ChannelDispatcher(icl);
Console.WriteLine("servicehost has {0} ChannelDispatchers", serviceHost.ChannelDispatchers.Count);
ChannelDispatcherCollection dispatchers = serviceHost.ChannelDispatchers;
foreach (ChannelDispatcher disp in dispatchers)
{
Console.WriteLine("Binding name: " + disp.BindingName);
}
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:8001/Simple")
Dim serviceHost As New ServiceHost(GetType(CalculatorService), baseAddress)
serviceHost.AddServiceEndpoint(GetType(ICalculator), New WSHttpBinding(), "CalculatorServiceObject")
' Enable MEX.
Dim smb As New ServiceMetadataBehavior()
smb.HttpGetEnabled = True
serviceHost.Description.Behaviors.Add(smb)
serviceHost.Open()
Dim icl As IChannelListener = serviceHost.ChannelDispatchers(0).Listener
Dim dispatcher As New ChannelDispatcher(icl)
Console.WriteLine("servicehost has {0} ChannelDispatchers", serviceHost.ChannelDispatchers.Count)
Dim dispatchers As ChannelDispatcherCollection = serviceHost.ChannelDispatchers
For Each disp As ChannelDispatcher In dispatchers
Console.WriteLine("Binding name: " & disp.BindingName)
Next disp
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()
Comentários
Um ChannelDispatcher objeto associa um IChannelListener a um URI específico (chamado de URI de escuta) a uma instância de um serviço. Cada ServiceHost objeto pode ter muitos ChannelDispatcher objetos, cada um associado a um ouvinte diferente e URI de escuta para esse serviço.
Quando uma mensagem chega, o ChannelDispatcher consulta cada um dos objetos associados EndpointDispatcher se o ponto de extremidade pode aceitar a mensagem e passa a mensagem para aquele que pode. O EndpointDispatcher objeto é responsável por processar mensagens de um ChannelDispatcher quando o endereço de destino de uma mensagem corresponde à AddressFilter propriedade e a ação de mensagem corresponde à ContractFilter propriedade .
Todas as propriedades que controlam o tempo de vida e o comportamento de uma sessão de canal estão disponíveis para inspeção ou modificação no objeto ChannelDispatcher. Além do EndpointDispatcher, eles incluem objetos personalizados IChannelInitializer , o IChannelListener, o ServiceHost, o associado e InstanceContext.
Construtores
ChannelDispatcher(IChannelListener) |
Inicializa uma nova instância da classe ChannelDispatcher. |
ChannelDispatcher(IChannelListener, String) |
Inicializa uma nova instância da classe ChannelDispatcher. |
ChannelDispatcher(IChannelListener, String, IDefaultCommunicationTimeouts) |
Inicializa uma nova instância da classe ChannelDispatcher. |
Propriedades
AsynchronousTransactedAcceptEnabled |
Obtém um valor que indica se as chamadas do método accept transacionadas no ouvinte são assíncronas. |
BindingName |
Obtém o nome da associação usada para configurar o serviço. |
ChannelInitializers |
Obtém um conjunto de objetos IChannelInitializer que você pode usar para inspecionar e adicionar o estado para canais quando eles são criados pela primeira vez. |
DefaultCloseTimeout |
Obtém o intervalo de tempo padrão permitido para o fechamento do dispatcher do canal. |
DefaultOpenTimeout |
Obtém o intervalo de tempo padrão permitido para a abertura do dispatcher do canal. |
Endpoints |
Obtém os dispatchers de ponto de extremidade que encaminham mensagens para os pontos de extremidade de canal. |
ErrorHandlers |
Obtém um conjunto de IErrorHandler objetos que podem ser usados para inserir a funcionalidade de tratamento de erro personalizado em um ponto de extremidade. |
Host |
Obtém o host para o serviço associado ao dispatcher. |
Host |
Quando substituído em uma classe derivada, obtém o host de serviço associado com o dispatcher de canal. (Herdado de ChannelDispatcherBase) |
IncludeExceptionDetailInFaults |
Obtém ou define um valor que indica se detalhes sobre uma exceção em uma falha devem ou não ser incluídos. |
IsDisposed |
Obtém um valor que indica se o objeto de comunicação foi descartado. (Herdado de CommunicationObject) |
IsTransactedAccept |
Obtém um valor que indica se as chamadas de aceitação de método no ouvinte são realizadas sob uma transação. |
IsTransactedReceive |
Obtém um valor que indica se as chamadas de recebimento de método no ouvinte são realizadas sob uma transação. |
Listener |
Obtém o ouvinte associado com o dispatcher do canal. |
ManualAddressing |
Obtém ou define um valor que indica se o dispatcher do canal adiciona cabeçalhos de endereçamento para mensagens de solicitação/resposta. |
MaxPendingReceives |
Obtém ou define o máximo de mensagens pendentes por canal. |
MaxTransactedBatchSize |
Obtém ou define o tamanho máximo para um lote transacionado. |
MessageVersion |
Obtém ou define a mensagem SOAP e as versões do WS-Addressing usadas ou esperadas. |
ReceiveContextEnabled |
Obtém ou define se ReceiveContext está habilitado. |
ReceiveSynchronously |
Obtém ou define um valor que especifica se o dispatcher usa chamadas síncronas para ler mensagens de canais. |
SendAsynchronously |
Obtém ou define se as mensagens são enviadas de forma assíncrona. |
ServiceThrottle |
Obtém ou define a limitação de serviço para o serviço associado com o dispatcher do canal. |
State |
Obtém um valor que indica o estado atual do objeto de comunicação. (Herdado de CommunicationObject) |
ThisLock |
Obtém o bloqueio mutuamente exclusivo que protege a instância da classe durante uma transição de estado. (Herdado de CommunicationObject) |
TransactionIsolationLevel |
Obtém ou define o nível de isolamento padrão para transações. |
TransactionTimeout |
Obtém ou define um valor que especifica o tempo limite padrão para novas transações criadas pelo dispatcher em nome do serviço. |
Métodos
Abort() |
Faz com que um objeto de comunicação faça a transição imediata do estado atual para o estado de fechamento. (Herdado de CommunicationObject) |
Attach(ServiceHostBase) |
Anexa o dispatcher do canal ao host. |
Attach(ServiceHostBase) |
Quando substituído em uma classe derivada, anexa o dispatcher do canal a um host específico. (Herdado de ChannelDispatcherBase) |
BeginClose(AsyncCallback, Object) |
Inicia uma operação assíncrona para fechar um objeto de comunicação. (Herdado de CommunicationObject) |
BeginClose(TimeSpan, AsyncCallback, Object) |
Inicia uma operação assíncrona para fechar um objeto de comunicação com um tempo limite especificado. (Herdado de CommunicationObject) |
BeginOpen(AsyncCallback, Object) |
Inicia uma operação assíncrona para abrir um objeto de comunicação. (Herdado de CommunicationObject) |
BeginOpen(TimeSpan, AsyncCallback, Object) |
Inicia uma operação assíncrona para abrir um objeto de comunicação dentro de um intervalo de tempo especificado. (Herdado de CommunicationObject) |
Close() |
Faz com que um objeto de comunicação faça a transição do estado atual para o estado fechado. (Herdado de CommunicationObject) |
Close(TimeSpan) |
Faz com que um objeto de comunicação faça a transição do estado atual para o estado fechado dentro de um intervalo de tempo especificado. (Herdado de CommunicationObject) |
CloseInput() |
Interrompe a aceitação de novos canais pelo ouvinte. |
Detach(ServiceHostBase) |
Desanexa o host de serviço do dispatcher do canal. |
Detach(ServiceHostBase) |
Quando substituído em uma classe derivada, desanexa o dispatcher do canal de um host específico. (Herdado de ChannelDispatcherBase) |
EndClose(IAsyncResult) |
Conclui uma operação assíncrona para fechar um objeto de comunicação. (Herdado de CommunicationObject) |
EndOpen(IAsyncResult) |
Conclui uma operação assíncrona para abrir um objeto de comunicação. (Herdado de CommunicationObject) |
Equals(Object) |
Determina se o objeto especificado é igual ao objeto atual. (Herdado de Object) |
Fault() |
Faz com que um objeto de comunicação faça a transição do estado atual para o estado com falha. (Herdado de CommunicationObject) |
GetCommunicationObjectType() |
Obtém o tipo de objeto de comunicação. (Herdado de CommunicationObject) |
GetHashCode() |
Serve como a função de hash padrão. (Herdado de Object) |
GetType() |
Obtém o Type da instância atual. (Herdado de Object) |
MemberwiseClone() |
Cria uma cópia superficial do Object atual. (Herdado de Object) |
OnAbort() |
Anula o ouvinte associado com o dispatcher. |
OnBeginClose(TimeSpan, AsyncCallback, Object) |
Inicia uma operação assíncrona para fechar um ouvinte de canais para o dispatcher que deve ser concluído dentro de um intervalo de tempo especificado. |
OnBeginOpen(TimeSpan, AsyncCallback, Object) |
Inicia uma operação assíncrona para abrir um ouvinte de canais para o dispatcher que deve ser concluído dentro de um intervalo de tempo especificado. |
OnClose(TimeSpan) |
Fecha o ouvinte de canais associado ao dispatcher dentro de um intervalo de tempo especificado. |
OnCloseAsync(TimeSpan) |
Um componente que aceita canais e os associa a um serviço. |
OnCloseAsync(TimeSpan) |
Um componente que aceita canais e os associa a um serviço. (Herdado de CommunicationObject) |
OnClosed() |
Fornece um rastreamento do fechamento dos dispatchers de ponto de extremidade associados com o dispatcher do canal. |
OnClosing() |
Chamada durante a transição de um objeto de comunicação para o estado de fechamento. (Herdado de CommunicationObject) |
OnEndClose(IAsyncResult) |
Conclui uma operação assíncrona para fechar um ouvinte de canais para o dispatcher. |
OnEndOpen(IAsyncResult) |
Conclui uma operação assíncrona para abrir um ouvinte de canais para o dispatcher. |
OnFaulted() |
Insere o processamento em um objeto de comunicação depois que ela fez a transição para o estado de fechamento devido à invocação de uma operação fault síncrona. (Herdado de CommunicationObject) |
OnOpen(TimeSpan) |
Abre o ouvinte associado com o dispatcher do canal. |
OnOpenAsync(TimeSpan) |
Um componente que aceita canais e os associa a um serviço. |
OnOpenAsync(TimeSpan) |
Um componente que aceita canais e os associa a um serviço. (Herdado de CommunicationObject) |
OnOpened() |
Preenche e valida a tabela de filtro usada para expedir para os pontos de extremidade. |
OnOpening() |
Verifica se o dispatcher do canal está anexado a um host. |
Open() |
Faz com que um objeto de comunicação faça a transição do estado criado para o estado aberto. (Herdado de CommunicationObject) |
Open(TimeSpan) |
Faz com que um objeto de comunicação faça a transição do estado criado para o estado aberto em um intervalo de tempo especificado. (Herdado de CommunicationObject) |
ThrowIfDisposed() |
Gera uma exceção se o objeto de comunicação é descartado. (Herdado de CommunicationObject) |
ThrowIfDisposedOrImmutable() |
Gera uma exceção se o objeto de comunicação da propriedade State não estiver definido para o estado Created. (Herdado de CommunicationObject) |
ThrowIfDisposedOrNotOpen() |
Gera uma exceção se o objeto de comunicação não estiver no estado Opened. (Herdado de CommunicationObject) |
ToString() |
Retorna uma cadeia de caracteres que representa o objeto atual. (Herdado de Object) |
Eventos
Closed |
Ocorre quando um objeto de comunicação entra no estado fechado. (Herdado de CommunicationObject) |
Closing |
Ocorre quando um objeto de comunicação faz a transição para o estado fechado. (Herdado de CommunicationObject) |
Faulted |
Ocorre quando um objeto de comunicação entra em um estado de falha. (Herdado de CommunicationObject) |
Opened |
Ocorre quando um objeto de comunicação faz a transição para o estado aberto. (Herdado de CommunicationObject) |
Opening |
Ocorre quando um objeto de comunicação faz a transição para o estado de abertura. (Herdado de CommunicationObject) |
Implantações explícitas de interface
IAsyncCommunicationObject.CloseAsync(TimeSpan) |
Um componente que aceita canais e os associa a um serviço. (Herdado de CommunicationObject) |
IAsyncCommunicationObject.OpenAsync(TimeSpan) |
Um componente que aceita canais e os associa a um serviço. (Herdado de CommunicationObject) |
Métodos de Extensão
CloseHelperAsync(ICommunicationObject, TimeSpan) |
Um componente que aceita canais e os associa a um serviço. |
OpenHelperAsync(ICommunicationObject, TimeSpan) |
Um componente que aceita canais e os associa a um serviço. |
GetInternalCloseTimeout(CommunicationObject) |
Um componente que aceita canais e os associa a um serviço. |