Comparteix a través de


ChannelDispatcher Clase

Definición

Componente que acepta canales y los asocia a un servicio.

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
Herencia

Ejemplos

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()

Comentarios

Un objeto ChannelDispatcher asocia un IChannelListener de un URI determinado (denominado URI de escucha) a una instancia de un servicio. Cada objeto ServiceHost puede tener muchos objetos ChannelDispatcher, cada uno asociado a un agente de escucha diferente y URI de escucha para ese servicio.

Cuando llega un mensaje, el objeto ChannelDispatcher consulta a cada uno de los objetos EndpointDispatcher asociados para saber si el extremo puede aceptar el mensaje, y pasa el mensaje a uno que pueda. El objeto EndpointDispatcher es responsable de procesar los mensajes de un objeto ChannelDispatcher cuando la dirección de destino de un mensaje coincide con la propiedad AddressFilter y la acción del mensaje coincide con la propiedad ContractFilter.

Todas las propiedades que controlan la duración y el comportamiento de una sesión de canal se pueden inspeccionar o modificar en el objeto ChannelDispatcher. Además del objeto EndpointDispatcher, están los objetos personalizados IChannelInitializer, el objeto IChannelListener, el objeto ServiceHost, el asociado y el objeto InstanceContext.

Constructores

ChannelDispatcher(IChannelListener)

Inicializa una nueva instancia de la clase ChannelDispatcher.

ChannelDispatcher(IChannelListener, String)

Inicializa una nueva instancia de la clase ChannelDispatcher.

ChannelDispatcher(IChannelListener, String, IDefaultCommunicationTimeouts)

Inicializa una nueva instancia de la clase ChannelDispatcher.

Propiedades

AsynchronousTransactedAcceptEnabled

Obtiene un valor que indica si las llamadas al método de aceptación de transacción en el agente de escucha son asincrónicas.

BindingName

Obtiene el nombre del enlace utilizado para configurar el servicio.

ChannelInitializers

Obtiene un conjunto de objetos IChannelInitializer que se puede utilizar para inspeccionar canales y agregarles estado cuando se crean.

DefaultCloseTimeout

Obtiene el intervalo de tiempo predeterminado permitido para que el distribuidor de canal se cierre.

DefaultOpenTimeout

Obtiene el intervalo de tiempo predeterminado permitido para que el distribuidor de canal se abra.

Endpoints

Obtiene los distribuidores de extremos que reenvían los mensajes a los extremos de canal.

ErrorHandlers

Obtiene un conjunto de los objetos IErrorHandler que se pueden utilizar para insertar funcionalidad de control de errores personalizada para un punto de conexión.

Host

Obtiene el host para el servicio asociado al distribuidor.

Host

Cuando se invalida en una clase derivada, obtiene el host de servicio asociado al distribuidor del canal.

(Heredado de ChannelDispatcherBase)
IncludeExceptionDetailInFaults

Obtiene o establece un valor que indica si se deben incluir los detalles sobre una excepción en un error.

IsDisposed

Obtiene un valor que indica si el objeto de comunicación se ha eliminado.

(Heredado de CommunicationObject)
IsTransactedAccept

Obtiene un valor que indica si las llamadas al método de aceptación en el agente de escucha se realizan bajo una transacción.

IsTransactedReceive

Obtiene un valor que indica si las llamadas al método de recepción en el agente de escucha se realizan bajo una transacción.

Listener

Obtiene el agente de escucha asociado al distribuidor de canal.

ManualAddressing

Obtiene o establece un valor que indica si el distribuidor del canal agrega encabezados de direccionamiento a mensajes de respuesta-solicitud.

MaxPendingReceives

Obtiene o establece los mensajes pendientes máximos por canal.

MaxTransactedBatchSize

Obtiene o establece el tamaño máximo para un lote de transacción.

MessageVersion

Obtiene o establece las versiones del mensaje SOAP y de WS-Addressing que se utilizan o se esperan.

ReceiveContextEnabled

Obtiene o establece si ReceiveContext está habilitado.

ReceiveSynchronously

Obtiene o establece un valor que especifica si el distribuidor utiliza llamadas sincrónicas para leer los mensajes de los canales.

SendAsynchronously

Obtiene o establece si los mensajes se envían de forma asincrónica.

ServiceThrottle

Obtiene o establece el acelerador de servicio del servicio asociado al distribuidor de canal.

State

Obtiene un valor que indica el estado actual del objeto de comunicación.

(Heredado de CommunicationObject)
ThisLock

Obtiene el bloqueo mutuamente excluyente que protege la instancia de clase durante una transición de estado.

(Heredado de CommunicationObject)
TransactionIsolationLevel

Obtiene o establece el nivel de aislamiento predeterminado para las transacciones.

TransactionTimeout

Obtiene o establece un valor que especifica el tiempo de espera predeterminado para las nuevas transacciones creadas por el distribuidor en nombre del servicio.

Métodos

Abort()

Provoca que un objeto de comunicación pase inmediatamente de su estado actual al estado de cierre.

(Heredado de CommunicationObject)
Attach(ServiceHostBase)

Asocia el distribuidor de canal al host.

Attach(ServiceHostBase)

Cuando se invalida en una clase derivada, asocia el distribuidor del canal a un host concreto.

(Heredado de ChannelDispatcherBase)
BeginClose(AsyncCallback, Object)

Comienza una operación asincrónica para cerrar un objeto de comunicación.

(Heredado de CommunicationObject)
BeginClose(TimeSpan, AsyncCallback, Object)

Comienza una operación asincrónica para cerrar un objeto de comunicación con un tiempo de espera especificado.

(Heredado de CommunicationObject)
BeginOpen(AsyncCallback, Object)

Comienza una operación asincrónica para abrir un objeto de comunicación.

(Heredado de CommunicationObject)
BeginOpen(TimeSpan, AsyncCallback, Object)

Comienza una operación asincrónica para abrir un objeto de comunicación dentro de un intervalo de tiempo especificado.

(Heredado de CommunicationObject)
Close()

Provoca que un objeto de comunicación pase de su estado actual al estado cerrado.

(Heredado de CommunicationObject)
Close(TimeSpan)

Provoca que un objeto de comunicación pase su estado actual al estado cerrado dentro de un intervalo de tiempo especificado.

(Heredado de CommunicationObject)
CloseInput()

Hace que el agente de escucha deje de aceptar nuevos canales.

Detach(ServiceHostBase)

Desasocia el host de servicio del distribuidor de canal.

Detach(ServiceHostBase)

Cuando se invalida en una clase derivada, desasocia el distribuidor del canal de un host concreto.

(Heredado de ChannelDispatcherBase)
EndClose(IAsyncResult)

Completa una operación asincrónica para cerrar un objeto de comunicación.

(Heredado de CommunicationObject)
EndOpen(IAsyncResult)

Completa una operación asincrónica para abrir un objeto de comunicación.

(Heredado de CommunicationObject)
Equals(Object)

Determina si el objeto especificado es igual que el objeto actual.

(Heredado de Object)
Fault()

Provoca que un objeto de comunicación pase de su estado actual al estado de error.

(Heredado de CommunicationObject)
GetCommunicationObjectType()

Obtiene el tipo de objeto de comunicación.

(Heredado de CommunicationObject)
GetHashCode()

Sirve como la función hash predeterminada.

(Heredado de Object)
GetType()

Obtiene el Type de la instancia actual.

(Heredado de Object)
MemberwiseClone()

Crea una copia superficial del Object actual.

(Heredado de Object)
OnAbort()

Anula el agente de escucha asociado al distribuidor.

OnBeginClose(TimeSpan, AsyncCallback, Object)

Comienza una operación asincrónica para cerrar un agente de escucha de canal para el distribuidor que se debe completar dentro de un intervalo de tiempo especificado.

OnBeginOpen(TimeSpan, AsyncCallback, Object)

Comienza una operación asincrónica para abrir un agente de escucha de canal para el distribuidor que se debe completar dentro de un intervalo de tiempo especificado.

OnClose(TimeSpan)

Cierra el agente de escucha de canal asociado al distribuidor dentro de un intervalo de tiempo especificado.

OnCloseAsync(TimeSpan)

Componente que acepta canales y los asocia a un servicio.

OnCloseAsync(TimeSpan)

Componente que acepta canales y los asocia a un servicio.

(Heredado de CommunicationObject)
OnClosed()

Proporciona un seguimiento del cierre de los distribuidores de extremos asociados al distribuidor de canal.

OnClosing()

Se invoca durante la transición de un objeto de comunicación al estado de cierre.

(Heredado de CommunicationObject)
OnEndClose(IAsyncResult)

Completa una operación asincrónica para cerrar un agente de escucha de canal para el distribuidor.

OnEndOpen(IAsyncResult)

Completa una operación asincrónica para abrir un agente de escucha de canal para el distribuidor.

OnFaulted()

Inserta el procesamiento en un objeto de comunicación después de que éste pase al estado de error debido a la invocación de una operación sincrónica de error.

(Heredado de CommunicationObject)
OnOpen(TimeSpan)

Abre el agente de escucha asociado al distribuidor de canal.

OnOpenAsync(TimeSpan)

Componente que acepta canales y los asocia a un servicio.

OnOpenAsync(TimeSpan)

Componente que acepta canales y los asocia a un servicio.

(Heredado de CommunicationObject)
OnOpened()

Rellena y valida la tabla de filtros utilizada para enviar a los extremos.

OnOpening()

Comprueba si el distribuidor de canal está asociado a un host.

Open()

Hace que un objeto de comunicación pase del estado creado al estado abierto.

(Heredado de CommunicationObject)
Open(TimeSpan)

Hace que un objeto de comunicación pase del estado creado al estado abierto dentro de un intervalo de tiempo especificado.

(Heredado de CommunicationObject)
ThrowIfDisposed()

Produce una excepción si se elimina el objeto de comunicación.

(Heredado de CommunicationObject)
ThrowIfDisposedOrImmutable()

Produce una excepción si en el objeto de comunicación la propiedad State no está establecida en el estado Created.

(Heredado de CommunicationObject)
ThrowIfDisposedOrNotOpen()

Produce una excepción si el objeto de comunicación no está en el estado Opened.

(Heredado de CommunicationObject)
ToString()

Devuelve una cadena que representa el objeto actual.

(Heredado de Object)

Eventos

Closed

Se produce cuando un objeto de comunicación realiza una transición al estado de cerrado.

(Heredado de CommunicationObject)
Closing

Se produce cuando un objeto de comunicación realiza una transición al estado de cerrando.

(Heredado de CommunicationObject)
Faulted

Se produce cuando un objeto de comunicación realiza una transición al estado de error.

(Heredado de CommunicationObject)
Opened

Se produce cuando un objeto de comunicación realiza una transición al estado de abierto.

(Heredado de CommunicationObject)
Opening

Se produce cuando un objeto de comunicación realiza una transición al estado de abriendo.

(Heredado de CommunicationObject)

Implementaciones de interfaz explícitas

IAsyncCommunicationObject.CloseAsync(TimeSpan)

Componente que acepta canales y los asocia a un servicio.

(Heredado de CommunicationObject)
IAsyncCommunicationObject.OpenAsync(TimeSpan)

Componente que acepta canales y los asocia a un servicio.

(Heredado de CommunicationObject)

Métodos de extensión

CloseHelperAsync(ICommunicationObject, TimeSpan)

Componente que acepta canales y los asocia a un servicio.

OpenHelperAsync(ICommunicationObject, TimeSpan)

Componente que acepta canales y los asocia a un servicio.

GetInternalCloseTimeout(CommunicationObject)

Componente que acepta canales y los asocia a un servicio.

Se aplica a