Compartilhar via


ChannelDispatcher Classe

Definição

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.

Aplica-se a