Partager via


ChannelDispatcher Classe

Définition

Composant qui accepte les canaux et les associe à un 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
Héritage

Exemples

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

Remarques

Un objet ChannelDispatcher associe un IChannelListener d'un URI particulier (appelé un URI d'écoute) à une instance d'un service. Chaque objet ServiceHost peut avoir de nombreux objets ChannelDispatcher, chacun étant associé à un écouteur et un URI d'écoute différents pour ce service.

Lorsqu'un message arrive, le ChannelDispatcher interroge chacun des objets EndpointDispatcher associés pour déterminer si le point de terminaison peut accepter le message, et passe le message à celui-ci. L'objet EndpointDispatcher est chargé du traitement des messages à partir d'un ChannelDispatcher lorsque l'adresse de destination d'un message correspond à la propriété AddressFilter et que l'action de message correspond à la propriété ContractFilter.

Toutes les propriétés qui contrôlent la durée de vie et le comportement d'une session de canal sont disponibles pour l'inspection ou la modification sur l'objet ChannelDispatcher. En plus du EndpointDispatcher, ceux-ci incluent des objets IChannelInitializer personnalisés, l'IChannelListener, l'ServiceHost, et le InstanceContext associé.

Constructeurs

ChannelDispatcher(IChannelListener)

Initialise une nouvelle instance de la classe ChannelDispatcher.

ChannelDispatcher(IChannelListener, String)

Initialise une nouvelle instance de la classe ChannelDispatcher.

ChannelDispatcher(IChannelListener, String, IDefaultCommunicationTimeouts)

Initialise une nouvelle instance de la classe ChannelDispatcher.

Propriétés

AsynchronousTransactedAcceptEnabled

Obtient une valeur qui indique si les appels de la méthode accept traitée sur l'écouteur sont asynchrones.

BindingName

Obtient le nom de la liaison utilisée pour configurer le service.

ChannelInitializers

Obtient un ensemble d'objets IChannelInitializer que vous pouvez utiliser pour inspecter et ajouter l'état aux canaux lors de leur création.

DefaultCloseTimeout

Obtient l'intervalle de temps par défaut autorisé pour la fermeture du répartiteur de canal.

DefaultOpenTimeout

Obtient l'intervalle de temps par défaut autorisé pour l'ouverture du répartiteur de canal.

Endpoints

Obtient les répartiteurs de point de terminaison qui transfèrent les messages aux points de terminaison de canal.

ErrorHandlers

Obtient un ensemble d'objets IErrorHandler qui peuvent être utilisés pour insérer les fonctionnalités de gestion des erreurs personnalisées pour un point de terminaison.

Host

Obtient l'hôte pour le service associé au répartiteur.

Host

En cas de substitution dans une classe dérivée, obtient l'hôte de service associé au répartiteur de canal.

(Hérité de ChannelDispatcherBase)
IncludeExceptionDetailInFaults

Obtient ou définit une valeur qui indique s'il faut inclure les détails sur une exception dans une erreur.

IsDisposed

Obtient une valeur qui indique si l'objet de communication a été supprimé.

(Hérité de CommunicationObject)
IsTransactedAccept

Obtient une valeur qui indique si les appels de la méthode accept sur l'écouteur sont effectués sous une transaction.

IsTransactedReceive

Obtient une valeur qui indique si les appels de la méthode receive sur l'écouteur sont effectués sous une transaction.

Listener

Obtient l'écouteur associé au répartiteur de canal.

ManualAddressing

Obtient ou définit une valeur qui indique si le répartiteur de canal ajoute des en-têtes d'adressage aux messages de demande/réponse.

MaxPendingReceives

Obtient ou définit les messages en attente maximaux par canal.

MaxTransactedBatchSize

Obtient ou définit la taille maximale pour un lot traité.

MessageVersion

Obtient ou définit le message SOAP et les versions WS-Addressing qui sont utilisées ou attendues.

ReceiveContextEnabled

Obtient ou définit si ReceiveContext est activé.

ReceiveSynchronously

Obtient ou définit une valeur qui spécifie si le répartiteur utilise des appels synchrones pour lire les messages de canaux.

SendAsynchronously

Obtient ou définit si les messages sont envoyés de façon asynchrone.

ServiceThrottle

Obtient ou définit la limitation de service pour le service associé au répartiteur de canal.

State

Obtient une valeur qui indique l'état actuel de l'objet de communication.

(Hérité de CommunicationObject)
ThisLock

Obtient le verrou mutuellement exclusif qui protège l'instance de classe pendant une transition d'état.

(Hérité de CommunicationObject)
TransactionIsolationLevel

Obtient ou définit le niveau d’isolement par défaut pour les transactions.

TransactionTimeout

Obtient ou définit une valeur qui spécifie le délai d’attente par défaut pour les transactions créées par le répartiteur pour le compte du service.

Méthodes

Abort()

Provoque la transition immédiate d'un objet de communication de son état actuel à l'état de fermeture.

(Hérité de CommunicationObject)
Attach(ServiceHostBase)

Attache le répartiteur de canal à l'hôte.

Attach(ServiceHostBase)

En cas de substitution dans une classe dérivée, attache le répartiteur de canal à un hôte spécifique.

(Hérité de ChannelDispatcherBase)
BeginClose(AsyncCallback, Object)

Commence une opération asynchrone pour fermer un objet de communication.

(Hérité de CommunicationObject)
BeginClose(TimeSpan, AsyncCallback, Object)

Commence une opération asynchrone pour fermer un objet de communication avec un délai d'attente spécifié.

(Hérité de CommunicationObject)
BeginOpen(AsyncCallback, Object)

Commence une opération asynchrone pour ouvrir un objet de communication.

(Hérité de CommunicationObject)
BeginOpen(TimeSpan, AsyncCallback, Object)

Commence une opération asynchrone pour ouvrir un objet de communication dans un intervalle de temps spécifié.

(Hérité de CommunicationObject)
Close()

Provoque la transition d'un objet de communication de son état actuel à l'état fermé.

(Hérité de CommunicationObject)
Close(TimeSpan)

Provoque la transition d'un objet de communication de son état actuel à l'état fermé dans un intervalle de temps spécifié.

(Hérité de CommunicationObject)
CloseInput()

Interrompt l'acceptation de nouveaux canaux par l'écouteur.

Detach(ServiceHostBase)

Détache l'hôte de service du répartiteur de canal.

Detach(ServiceHostBase)

En cas de substitution dans une classe dérivée, détache le répartiteur de canal d'un hôte spécifique.

(Hérité de ChannelDispatcherBase)
EndClose(IAsyncResult)

Termine une opération asynchrone pour fermer un objet de communication.

(Hérité de CommunicationObject)
EndOpen(IAsyncResult)

Termine une opération asynchrone pour ouvrir un objet de communication.

(Hérité de CommunicationObject)
Equals(Object)

Détermine si l'objet spécifié est égal à l'objet actuel.

(Hérité de Object)
Fault()

Provoque la transition d'un objet de communication de son état actuel à l'état d'erreur.

(Hérité de CommunicationObject)
GetCommunicationObjectType()

Obtient le type d'objet de communication.

(Hérité de CommunicationObject)
GetHashCode()

Fait office de fonction de hachage par défaut.

(Hérité de Object)
GetType()

Obtient le Type de l'instance actuelle.

(Hérité de Object)
MemberwiseClone()

Crée une copie superficielle du Object actuel.

(Hérité de Object)
OnAbort()

Abandonne l'écouteur associé au répartiteur.

OnBeginClose(TimeSpan, AsyncCallback, Object)

Commence une opération asynchrone pour fermer un écouteur de canal pour le répartiteur qui doit être terminée dans un intervalle de temps spécifié.

OnBeginOpen(TimeSpan, AsyncCallback, Object)

Commence une opération asynchrone pour ouvrir un écouteur de canal pour le répartiteur qui doit être terminée dans un intervalle de temps spécifié.

OnClose(TimeSpan)

Ferme l'écouteur de canal associé au répartiteur dans un intervalle de temps spécifié.

OnCloseAsync(TimeSpan)

Composant qui accepte les canaux et les associe à un service.

OnCloseAsync(TimeSpan)

Composant qui accepte les canaux et les associe à un service.

(Hérité de CommunicationObject)
OnClosed()

Fournit un suivi de la fermeture des répartiteurs de point de terminaison associés au répartiteur de canal.

OnClosing()

Appelé pendant la transition d'un objet de communication à l'état de fermeture.

(Hérité de CommunicationObject)
OnEndClose(IAsyncResult)

Termine une opération asynchrone pour fermer un écouteur de canal pour le répartiteur.

OnEndOpen(IAsyncResult)

Termine une opération asynchrone pour ouvrir un écouteur de canal pour le répartiteur.

OnFaulted()

Insère le traitement sur un objet de communication après sa transition vers l’état d’erreur en raison de l’appel d’une opération d’erreur synchrone.

(Hérité de CommunicationObject)
OnOpen(TimeSpan)

Ouvre l'écouteur associé au répartiteur de canal.

OnOpenAsync(TimeSpan)

Composant qui accepte les canaux et les associe à un service.

OnOpenAsync(TimeSpan)

Composant qui accepte les canaux et les associe à un service.

(Hérité de CommunicationObject)
OnOpened()

Remplit et valide la table de filtres utilisée pour distribuer aux points de terminaison.

OnOpening()

Vérifie si le répartiteur de canal est attaché à un hôte.

Open()

Provoque la transition d'un objet de communication de l'état créé à l'état ouvert.

(Hérité de CommunicationObject)
Open(TimeSpan)

Provoque la transition d'un objet de communication de l'état créé à l'état ouvert dans un intervalle de temps spécifié.

(Hérité de CommunicationObject)
ThrowIfDisposed()

Renvoie une exception si l'objet de communication est supprimé.

(Hérité de CommunicationObject)
ThrowIfDisposedOrImmutable()

Renvoie une exception si la propriété State de l'objet de communication n'a pas pour valeur l'état Created.

(Hérité de CommunicationObject)
ThrowIfDisposedOrNotOpen()

Renvoie une exception si l'objet de communication n'est pas dans l'état Opened.

(Hérité de CommunicationObject)
ToString()

Retourne une chaîne qui représente l'objet actuel.

(Hérité de Object)

Événements

Closed

Se produit lorsqu'un objet de communication passe à l'état fermé.

(Hérité de CommunicationObject)
Closing

Se produit lorsqu'un objet de communication passe à l'état de fermeture.

(Hérité de CommunicationObject)
Faulted

Se produit lorsqu'un objet de communication passe à l'état d'erreur.

(Hérité de CommunicationObject)
Opened

Se produit lorsqu'un objet de communication passe à l'état ouvert.

(Hérité de CommunicationObject)
Opening

Se produit lorsqu'un objet de communication passe à l'état d'ouverture.

(Hérité de CommunicationObject)

Implémentations d’interfaces explicites

IAsyncCommunicationObject.CloseAsync(TimeSpan)

Composant qui accepte les canaux et les associe à un service.

(Hérité de CommunicationObject)
IAsyncCommunicationObject.OpenAsync(TimeSpan)

Composant qui accepte les canaux et les associe à un service.

(Hérité de CommunicationObject)

Méthodes d’extension

CloseHelperAsync(ICommunicationObject, TimeSpan)

Composant qui accepte les canaux et les associe à un service.

OpenHelperAsync(ICommunicationObject, TimeSpan)

Composant qui accepte les canaux et les associe à un service.

GetInternalCloseTimeout(CommunicationObject)

Composant qui accepte les canaux et les associe à un service.

S’applique à