ChannelDispatcher Classe
Definição
Importante
Algumas informações dizem respeito a um produto pré-lançado que pode ser substancialmente modificado antes de ser lançado. A Microsoft não faz garantias, de forma expressa ou implícita, em relação à informação aqui apresentada.
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) |