ChannelDispatcher Clase
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
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. |