ChannelDispatcher Classe
Définition
Important
Certaines informations portent sur la préversion du produit qui est susceptible d’être en grande partie modifiée avant sa publication. Microsoft exclut toute garantie, expresse ou implicite, concernant les informations fournies ici.
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. |