ChannelDispatcher ChannelDispatcher ChannelDispatcher ChannelDispatcher Class

Definição

Um componente que aceita canais e os associa a um serviço.A component that accepts channels and associates them with a service.

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 em um URI específico (chamado de URI de escuta) com uma instância de um serviço.A ChannelDispatcher object associates an IChannelListener at a particular URI (called a listen URI) with an instance of a service. Cada ServiceHost objeto pode ter muitos ChannelDispatcher objetos, cada um associado a um ouvinte e a um URI de escuta diferentes para esse serviço.Each ServiceHost object can have many ChannelDispatcher objects, each associated with a different listener and listen URI for that service.

Quando uma mensagem chega, o ChannelDispatcher consulta cada um dos objetos EndpointDispatcher associados se o ponto de extremidade pode aceitar a mensagem e passa a mensagem para aquela que pode.When a message arrives, the ChannelDispatcher queries each of the associated EndpointDispatcher objects whether the endpoint can accept the message, and passes the message to the one that can. 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 da mensagem ContractFilter corresponde à propriedade.The EndpointDispatcher object is responsible for processing messages from a ChannelDispatcher when the destination address of a message matches the AddressFilter property and the message action matches the ContractFilter property.

Todas as propriedades que controlam o tempo de vida e o comportamento de uma sessão de canal estão disponíveis ChannelDispatcher para inspeção ou modificação no objeto.All properties that control the lifetime and behavior of a channel session are available for inspection or modification on the ChannelDispatcher object. EndpointDispatcherAlém do InstanceContext, eles IChannelInitializer incluem objetospersonalizadosIChannelListener, o, o ,o,o,associadoe.ServiceHostIn addition to the EndpointDispatcher, these include custom IChannelInitializer objects, the IChannelListener, the ServiceHost, the associated and InstanceContext.

Construtores

ChannelDispatcher(IChannelListener) ChannelDispatcher(IChannelListener) ChannelDispatcher(IChannelListener) ChannelDispatcher(IChannelListener)

Inicializa uma nova instância da classe ChannelDispatcher.Initializes a new instance of the ChannelDispatcher class.

ChannelDispatcher(IChannelListener, String) ChannelDispatcher(IChannelListener, String) ChannelDispatcher(IChannelListener, String) ChannelDispatcher(IChannelListener, String)

Inicializa uma nova instância da classe ChannelDispatcher.Initializes a new instance of the ChannelDispatcher class.

ChannelDispatcher(IChannelListener, String, IDefaultCommunicationTimeouts) ChannelDispatcher(IChannelListener, String, IDefaultCommunicationTimeouts) ChannelDispatcher(IChannelListener, String, IDefaultCommunicationTimeouts) ChannelDispatcher(IChannelListener, String, IDefaultCommunicationTimeouts)

Inicializa uma nova instância da classe ChannelDispatcher.Initializes a new instance of the ChannelDispatcher class.

Propriedades

AsynchronousTransactedAcceptEnabled AsynchronousTransactedAcceptEnabled AsynchronousTransactedAcceptEnabled AsynchronousTransactedAcceptEnabled

Obtém um valor que indica se as chamadas do método accept transacionadas no ouvinte são assíncronas.Gets a value that indicates whether the transacted accept method calls on listener are asynchronous.

BindingName BindingName BindingName BindingName

Obtém o nome da associação usada para configurar o serviço.Gets the name of the binding used to configure the service.

ChannelInitializers ChannelInitializers ChannelInitializers 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.Gets a set of IChannelInitializer objects that you can use to inspect and add state to channels when they are first created.

DefaultCloseTimeout DefaultCloseTimeout DefaultCloseTimeout DefaultCloseTimeout

Obtém o intervalo de tempo padrão permitido para o fechamento do dispatcher do canal.Gets the default interval of time allowed for the channel dispatcher to close.

DefaultOpenTimeout DefaultOpenTimeout DefaultOpenTimeout DefaultOpenTimeout

Obtém o intervalo de tempo padrão permitido para a abertura do dispatcher do canal.Gets the default interval of time allowed for the channel dispatcher to open.

Endpoints Endpoints Endpoints Endpoints

Obtém os dispatchers de ponto de extremidade que encaminham mensagens para os pontos de extremidade de canal.Gets the endpoint dispatchers which forward messages to the channel endpoints.

ErrorHandlers ErrorHandlers ErrorHandlers 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.Gets a set of IErrorHandler objects that can be used to insert custom error handling functionality for an endpoint.

Host Host Host Host

Obtém o host para o serviço associado ao dispatcher.Gets the host for the service associated with the dispatcher.

IncludeExceptionDetailInFaults IncludeExceptionDetailInFaults IncludeExceptionDetailInFaults 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.Gets or sets a value that indicates whether to include the details about an exception in a fault.

IsDisposed IsDisposed IsDisposed IsDisposed

Obtém um valor que indica se o objeto de comunicação foi descartado.Gets a value that indicates whether the communication object has been disposed.

(Inherited from CommunicationObject)
IsTransactedAccept IsTransactedAccept IsTransactedAccept 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.Gets a value that indicates whether the accept method calls on the listener are done under a transaction.

IsTransactedReceive IsTransactedReceive IsTransactedReceive IsTransactedReceive

Obtém um valor que indica se as chamadas de recebimento de método no ouvinte são realizadas sob uma transação.Gets a value that indicates whether the receive method calls on the listener are done under a transaction.

Listener Listener Listener Listener

Obtém o ouvinte associado com o dispatcher do canal.Gets the listener associated with the channel dispatcher.

ManualAddressing ManualAddressing ManualAddressing 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.Gets or sets a value that indicates whether the channel dispatcher adds addressing headers to request-reply messages.

MaxPendingReceives MaxPendingReceives MaxPendingReceives MaxPendingReceives

Obtém ou define o máximo de mensagens pendentes por canal.Gets or sets the maximum pending messages per channel.

MaxTransactedBatchSize MaxTransactedBatchSize MaxTransactedBatchSize MaxTransactedBatchSize

Obtém ou define o tamanho máximo para um lote transacionado.Gets or sets the maximum size for a transacted batch.

MessageVersion MessageVersion MessageVersion MessageVersion

Obtém ou define a mensagem SOAP e as versões do WS-Addressing usadas ou esperadas.Gets or sets the SOAP message and WS-Addressing versions that are used or expected.

ReceiveContextEnabled ReceiveContextEnabled ReceiveContextEnabled ReceiveContextEnabled

Obtém ou define se ReceiveContext está habilitado.Gets or sets whether ReceiveContext is enabled.

ReceiveSynchronously ReceiveSynchronously ReceiveSynchronously ReceiveSynchronously

Obtém ou define um valor que especifica se o dispatcher usa chamadas síncronas para ler mensagens de canais.Gets or sets a value that specifies whether the dispatcher uses synchronous calls to read messages from channels.

SendAsynchronously SendAsynchronously SendAsynchronously SendAsynchronously

Obtém ou define se as mensagens são enviadas de forma assíncrona.Gets or sets whether messages are sent asynchronously.

ServiceThrottle ServiceThrottle ServiceThrottle ServiceThrottle

Obtém ou define a limitação de serviço para o serviço associado com o dispatcher do canal.Gets or sets the service throttle for the service associated with the channel dispatcher.

State State State State

Obtém um valor que indica o estado atual do objeto de comunicação.Gets a value that indicates the current state of the communication object.

(Inherited from CommunicationObject)
ThisLock ThisLock ThisLock ThisLock

Obtém o bloqueio mutuamente exclusivo que protege a instância da classe durante uma transição de estado.Gets the mutually exclusive lock that protects the class instance during a state transition.

(Inherited from CommunicationObject)
TransactionIsolationLevel TransactionIsolationLevel TransactionIsolationLevel TransactionIsolationLevel

Obtém ou define o nível de isolamento padrão para transações.Gets or sets the default isolation level for transactions.

TransactionTimeout TransactionTimeout TransactionTimeout 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.Gets or sets a value that specifies the default timeout for new transactions created by the dispatcher on behalf of the service.

Métodos

Abort() Abort() Abort() Abort()

Faz com que um objeto de comunicação faça a transição imediata do estado atual para o estado de fechamento.Causes a communication object to transition immediately from its current state into the closing state.

(Inherited from CommunicationObject)
Attach(ServiceHostBase) Attach(ServiceHostBase) Attach(ServiceHostBase) Attach(ServiceHostBase)

Anexa o dispatcher do canal ao host.Attaches the channel dispatcher to the host.

BeginClose(AsyncCallback, Object) BeginClose(AsyncCallback, Object) BeginClose(AsyncCallback, Object) BeginClose(AsyncCallback, Object)

Inicia uma operação assíncrona para fechar um objeto de comunicação.Begins an asynchronous operation to close a communication object.

(Inherited from CommunicationObject)
BeginClose(TimeSpan, AsyncCallback, Object) BeginClose(TimeSpan, AsyncCallback, Object) BeginClose(TimeSpan, AsyncCallback, Object) BeginClose(TimeSpan, AsyncCallback, Object)

Inicia uma operação assíncrona para fechar um objeto de comunicação com um tempo limite especificado.Begins an asynchronous operation to close a communication object with a specified timeout.

(Inherited from CommunicationObject)
BeginOpen(AsyncCallback, Object) BeginOpen(AsyncCallback, Object) BeginOpen(AsyncCallback, Object) BeginOpen(AsyncCallback, Object)

Inicia uma operação assíncrona para abrir um objeto de comunicação.Begins an asynchronous operation to open a communication object.

(Inherited from CommunicationObject)
BeginOpen(TimeSpan, AsyncCallback, Object) BeginOpen(TimeSpan, AsyncCallback, Object) BeginOpen(TimeSpan, AsyncCallback, Object) BeginOpen(TimeSpan, AsyncCallback, Object)

Inicia uma operação assíncrona para abrir um objeto de comunicação dentro de um intervalo de tempo especificado.Begins an asynchronous operation to open a communication object within a specified interval of time.

(Inherited from CommunicationObject)
Close() Close() Close() Close()

Faz com que um objeto de comunicação faça a transição do estado atual para o estado fechado.Causes a communication object to transition from its current state into the closed state.

(Inherited from CommunicationObject)
Close(TimeSpan) Close(TimeSpan) Close(TimeSpan) 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.Causes a communication object to transition from its current state into the closed state within a specified interval of time.

(Inherited from CommunicationObject)
CloseInput() CloseInput() CloseInput() CloseInput()

Interrompe a aceitação de novos canais pelo ouvinte.Stops the listener from accepting new channels.

Detach(ServiceHostBase) Detach(ServiceHostBase) Detach(ServiceHostBase) Detach(ServiceHostBase)

Desanexa o host de serviço do dispatcher do canal.Detaches the service host from the channel dispatcher.

EndClose(IAsyncResult) EndClose(IAsyncResult) EndClose(IAsyncResult) EndClose(IAsyncResult)

Conclui uma operação assíncrona para fechar um objeto de comunicação.Completes an asynchronous operation to close a communication object.

(Inherited from CommunicationObject)
EndOpen(IAsyncResult) EndOpen(IAsyncResult) EndOpen(IAsyncResult) EndOpen(IAsyncResult)

Conclui uma operação assíncrona para abrir um objeto de comunicação.Completes an asynchronous operation to open a communication object.

(Inherited from CommunicationObject)
Equals(Object) Equals(Object) Equals(Object) Equals(Object)

Determina se o objeto especificado é igual ao objeto atual.Determines whether the specified object is equal to the current object.

(Inherited from Object)
Fault() Fault() Fault() Fault()

Faz com que um objeto de comunicação faça a transição do estado atual para o estado com falha.Causes a communication object to transition from its current state into the faulted state.

(Inherited from CommunicationObject)
GetCommunicationObjectType() GetCommunicationObjectType() GetCommunicationObjectType() GetCommunicationObjectType()

Obtém o tipo de objeto de comunicação.Gets the type of communication object.

(Inherited from CommunicationObject)
GetHashCode() GetHashCode() GetHashCode() GetHashCode()

Serve como a função de hash padrão.Serves as the default hash function.

(Inherited from Object)
GetType() GetType() GetType() GetType()

Obtém o Type da instância atual.Gets the Type of the current instance.

(Inherited from Object)
MemberwiseClone() MemberwiseClone() MemberwiseClone() MemberwiseClone()

Cria uma cópia superficial do Object atual.Creates a shallow copy of the current Object.

(Inherited from Object)
OnAbort() OnAbort() OnAbort() OnAbort()

Anula o ouvinte associado com o dispatcher.Aborts the listener associated with the dispatcher.

OnBeginClose(TimeSpan, AsyncCallback, Object) OnBeginClose(TimeSpan, AsyncCallback, Object) OnBeginClose(TimeSpan, AsyncCallback, Object) 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.Begins an asynchronous operation to close a channel listener for the dispatcher that must be completed within a specified interval of time.

OnBeginOpen(TimeSpan, AsyncCallback, Object) OnBeginOpen(TimeSpan, AsyncCallback, Object) OnBeginOpen(TimeSpan, AsyncCallback, Object) 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.Begins an asynchronous operation to open a channel listener for the dispatcher that must be completed within a specified interval of time.

OnClose(TimeSpan) OnClose(TimeSpan) OnClose(TimeSpan) OnClose(TimeSpan)

Fecha o ouvinte de canais associado ao dispatcher dentro de um intervalo de tempo especificado.Closes the channel listener associated with the dispatcher within a specified interval of time.

OnClosed() OnClosed() OnClosed() OnClosed()

Fornece um rastreamento do fechamento dos dispatchers de ponto de extremidade associados com o dispatcher do canal.Provides a trace of the closing of the endpoint dispatchers associated with the channel dispatcher.

OnClosing() OnClosing() OnClosing() OnClosing()

Chamada durante a transição de um objeto de comunicação para o estado de fechamento.Invoked during the transition of a communication object into the closing state.

(Inherited from CommunicationObject)
OnEndClose(IAsyncResult) OnEndClose(IAsyncResult) OnEndClose(IAsyncResult) OnEndClose(IAsyncResult)

Conclui uma operação assíncrona para fechar um ouvinte de canais para o dispatcher.Completes an asynchronous operation to close a channel listener for the dispatcher.

OnEndOpen(IAsyncResult) OnEndOpen(IAsyncResult) OnEndOpen(IAsyncResult) OnEndOpen(IAsyncResult)

Conclui uma operação assíncrona para abrir um ouvinte de canais para o dispatcher.Completes an asynchronous operation to open a channel listener for the dispatcher.

OnFaulted() OnFaulted() OnFaulted() 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.Inserts processing on a communication object after it transitions to the faulted state due to the invocation of a synchronous fault operation.

(Inherited from CommunicationObject)
OnOpen(TimeSpan) OnOpen(TimeSpan) OnOpen(TimeSpan) OnOpen(TimeSpan)

Abre o ouvinte associado com o dispatcher do canal.Opens the listener associated with the channel dispatcher.

OnOpened() OnOpened() OnOpened() OnOpened()

Preenche e valida a tabela de filtro usada para expedir para os pontos de extremidade.Populates and validates filter table used to dispatch to the endpoints.

OnOpening() OnOpening() OnOpening() OnOpening()

Verifica se o dispatcher do canal está anexado a um host.Checks whether the channel dispatcher is attached to a host.

Open() Open() Open() Open()

Faz com que um objeto de comunicação faça a transição do estado criado para o estado aberto.Causes a communication object to transition from the created state into the opened state.

(Inherited from CommunicationObject)
Open(TimeSpan) Open(TimeSpan) Open(TimeSpan) 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.Causes a communication object to transition from the created state into the opened state within a specified interval of time.

(Inherited from CommunicationObject)
ThrowIfDisposed() ThrowIfDisposed() ThrowIfDisposed() ThrowIfDisposed()

Gera uma exceção se o objeto de comunicação é descartado.Throws an exception if the communication object is disposed.

(Inherited from CommunicationObject)
ThrowIfDisposedOrImmutable() ThrowIfDisposedOrImmutable() ThrowIfDisposedOrImmutable() ThrowIfDisposedOrImmutable()

Gera uma exceção se o objeto de comunicação da propriedade State não estiver definido para o estado Created.Throws an exception if the communication object the State property is not set to the Created state.

(Inherited from CommunicationObject)
ThrowIfDisposedOrNotOpen() ThrowIfDisposedOrNotOpen() ThrowIfDisposedOrNotOpen() ThrowIfDisposedOrNotOpen()

Gera uma exceção se o objeto de comunicação não estiver no estado Opened.Throws an exception if the communication object is not in the Opened state.

(Inherited from CommunicationObject)
ToString() ToString() ToString() ToString()

Retorna uma cadeia de caracteres que representa o objeto atual.Returns a string that represents the current object.

(Inherited from Object)

Eventos

Closed Closed Closed Closed

Ocorre quando um objeto de comunicação entra no estado fechado.Occurs when a communication object transitions into the closed state.

(Inherited from CommunicationObject)
Closing Closing Closing Closing

Ocorre quando um objeto de comunicação faz a transição para o estado fechado.Occurs when a communication object transitions into the closing state.

(Inherited from CommunicationObject)
Faulted Faulted Faulted Faulted

Ocorre quando um objeto de comunicação entra em um estado de falha.Occurs when a communication object transitions into the faulted state.

(Inherited from CommunicationObject)
Opened Opened Opened Opened

Ocorre quando um objeto de comunicação faz a transição para o estado aberto.Occurs when a communication object transitions into the opened state.

(Inherited from CommunicationObject)
Opening Opening Opening Opening

Ocorre quando um objeto de comunicação faz a transição para o estado de abertura.Occurs when a communication object transitions into the opening state.

(Inherited from CommunicationObject)

Aplica-se a