Linguagem

ChannelDispatcher Classe

Definição

Um componente que aceita canais e os associa a um serviço.

public ref class ChannelDispatcher
public ref class ChannelDispatcher : System::ServiceModel::Dispatcher::ChannelDispatcherBase
public class ChannelDispatcher
public class ChannelDispatcher : System.ServiceModel.Dispatcher.ChannelDispatcherBase
type ChannelDispatcher = class
type ChannelDispatcher = class
    inherit ChannelDispatcherBase
Public Class ChannelDispatcher
Public Class ChannelDispatcher
Inherits ChannelDispatcherBase
Herança
ChannelDispatcher
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()

Observações

Um ChannelDispatcher objeto associa um IChannelListener num determinado URI (chamado 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 e URI de escuta diferente 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 a ChannelDispatcher quando o endereço de destino de uma mensagem corresponde à AddressFilter propriedade e a ação da 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 ChannelDispatcher objeto. Além do EndpointDispatcher, estes incluem objetos personalizados IChannelInitializer , o IChannelListener, o ServiceHost, o associado e InstanceContext.

Construtores

Name Descrição
ChannelDispatcher(IChannelListener, String, IDefaultCommunicationTimeouts)

Inicializa uma nova instância da ChannelDispatcher classe.

ChannelDispatcher(IChannelListener, String)

Inicializa uma nova instância da ChannelDispatcher classe.

ChannelDispatcher(IChannelListener)

Inicializa uma nova instância da ChannelDispatcher classe.

Propriedades

Name Descrição
AsynchronousTransactedAcceptEnabled

Obtém um valor que indica se as chamadas ao método de aceitação transacionadas no ouvinte são assíncronas.

BindingName

Obtém o nome da ligação usada para configurar o serviço.

ChannelInitializers

Obtém um conjunto de IChannelInitializer objetos que podes usar para inspecionar e adicionar estado aos canais quando são criados.

DefaultCloseTimeout

Obtém o intervalo de tempo padrão permitido para o despachante do canal fechar.

DefaultOpenTimeout

Obtém o intervalo de tempo padrão permitido para o despachante do canal abrir.

Endpoints

Recebe os despachantes dos endpoints que encaminham as mensagens para os endpoints do canal.

ErrorHandlers

Obtém um conjunto de IErrorHandler objetos que podem ser usados para inserir funcionalidades personalizadas de gestão de erros para um endpoint.

Host

Recebe o anfitrião do serviço associado ao despachante.

IncludeExceptionDetailInFaults

Recebe ou define um valor que indica se deve incluir os detalhes sobre uma exceção numa falha.

IsDisposed

Obtém um valor que indica se o objeto de comunicação foi eliminado.

(Herdado de CommunicationObject)
IsTransactedAccept

Obtém um valor que indica se as chamadas ao método de aceitação no ouvinte são feitas sob uma transação.

IsTransactedReceive

Obtém um valor que indica se as chamadas ao método de receção no ouvinte são feitas sob uma transação.

Listener

Associa o ouvinte ao despachante do canal.

ManualAddressing

Recebe ou define um valor que indica se o despachante do canal adiciona cabeçalhos de endereçamento às mensagens de pedido-resposta.

MaxPendingReceives

Recebe ou define o máximo de mensagens pendentes por canal.

MaxTransactedBatchSize

Obtém ou define o tamanho máximo para um lote transacionado.

MessageVersion

Recebe ou define a mensagem SOAP e WS-Addressing versões que são usadas ou esperadas.

ReceiveContextEnabled

Obtém ou define se o ReceiveContext está ativado.

ReceiveSynchronously

Obtém ou define um valor que especifica se o despachante utiliza chamadas síncronas para ler mensagens dos canais.

SendAsynchronously

Obtém ou define se as mensagens são enviadas de forma assíncrona.

ServiceThrottle

Recebe ou define o acelerador de serviço associado ao despachante 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 de 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

Recebe ou define um valor que especifica o timeout padrão para novas transações criadas pelo despachante em nome do serviço.

Métodos

Name Descrição
Abort()

Faz com que um objeto de comunicação transite imediatamente do seu estado atual para o estado de fecho.

(Herdado de CommunicationObject)
Attach(ServiceHostBase)

Liga o despachante do canal ao anfitrião.

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 timeout 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 seu estado atual para o estado fechado.

(Herdado de CommunicationObject)
Close(TimeSpan)

Faz com que um objeto de comunicação transite do seu estado atual para o estado fechado dentro de um intervalo de tempo especificado.

(Herdado de CommunicationObject)
CloseInput()

Impede o ouvinte de aceitar novos canais.

Detach(ServiceHostBase)

Destaca o anfitrião do serviço do despachante do canal.

EndClose(IAsyncResult)

Completa uma operação assíncrona para fechar um objeto de comunicação.

(Herdado de CommunicationObject)
EndOpen(IAsyncResult)

Completa 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 seu estado atual para o estado defeituoso.

(Herdado de CommunicationObject)
GetCommunicationObjectType()

Obtém o tipo de objeto de comunicação.

(Herdado de CommunicationObject)
GetHashCode()

Serve como função de hash predefinida.

(Herdado de Object)
GetType()

Obtém o Type da instância atual.

(Herdado de Object)
MemberwiseClone()

Cria uma cópia superficial do atual Object.

(Herdado de Object)
OnAbort()

Aborta o ouvinte associado ao despachante.

OnBeginClose(TimeSpan, AsyncCallback, Object)

Inicia uma operação assíncrona para fechar um ouvinte de canal para o despachante, que deve ser concluída dentro de um intervalo de tempo especificado.

OnBeginOpen(TimeSpan, AsyncCallback, Object)

Inicia uma operação assíncrona para abrir um ouvinte de canal para o despachante que deve ser concluída dentro de um intervalo de tempo especificado.

OnClose(TimeSpan)

Fecha o ouvinte do canal associado ao despachante dentro de um intervalo de tempo especificado.

OnClosed()

Fornece um rasto do encerramento dos despachantes de endpoint associados ao despachante do canal.

OnClosing()

Invocado durante a transição de um objeto de comunicação para o estado de fecho.

(Herdado de CommunicationObject)
OnEndClose(IAsyncResult)

Conclui uma operação assíncrona para fechar um ouvinte de canal para o despachante.

OnEndOpen(IAsyncResult)

Completa uma operação assíncrona para abrir um ouvinte de canal para o despachante.

OnFaulted()

Insere processamento num objeto de comunicação após esta transitar para o estado de falha devido à invocação de uma operação de falha síncrona.

(Herdado de CommunicationObject)
OnOpen(TimeSpan)

Abre o ouvinte associado ao despachante do canal.

OnOpened()

Preenche e valida a tabela de filtros usada para despachar para os endpoints.

OnOpening()

Verifica se o despachante do canal está ligado a um anfitrião.

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 dentro de um intervalo de tempo especificado.

(Herdado de CommunicationObject)
ThrowIfDisposed()

Lança uma exceção se o objeto de comunicação for eliminado.

(Herdado de CommunicationObject)
ThrowIfDisposedOrImmutable()

Lança uma exceção se a propriedade do objeto State de comunicação não estiver definida para o Created estado.

(Herdado de CommunicationObject)
ThrowIfDisposedOrNotOpen()

Lança uma exceção se o objeto de comunicação não estiver nesse Opened estado.

(Herdado de CommunicationObject)
ToString()

Devolve uma cadeia que representa o objeto atual.

(Herdado de Object)

Eventos

Name Descrição
Closed

Ocorre quando um objeto de comunicação transita para o estado fechado.

(Herdado de CommunicationObject)
Closing

Ocorre quando um objeto de comunicação transita para o estado de fecho.

(Herdado de CommunicationObject)
Faulted

Ocorre quando um objeto de comunicação transita para o estado falhado.

(Herdado de CommunicationObject)
Opened

Ocorre quando um objeto de comunicação transita para o estado aberto.

(Herdado de CommunicationObject)
Opening

Ocorre quando um objeto de comunicação transita para o estado de abertura.

(Herdado de CommunicationObject)

Aplica-se a