ChannelDispatcher Classe
Definizione
Importante
Alcune informazioni sono relative alla release non definitiva del prodotto, che potrebbe subire modifiche significative prima della release definitiva. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
Un componente che accetta i canali e li associa a un servizio.
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
- Ereditarietà
Esempio
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()
Commenti
Un oggetto ChannelDispatcher associa un'interfaccia IChannelListener a un URI specifico (denominato URI di ascolto) con un'istanza di un servizio. Ogni oggetto ServiceHost può essere dotato di molti oggetti ChannelDispatcher, ognuno associato a un listener e a un URI di ascolto diversi per quel servizio.
All'arrivo di un messaggio ChannelDispatcher esegue una query su ognuno degli oggetti EndpointDispatcher associati per scoprire se l'endpoint può accettare il messaggio, quindi passa il messaggio all'endpoint che ne ha la possibilità. L'oggetto EndpointDispatcher è responsabile per l'elaborazione dei messaggi provenienti da una classe ChannelDispatcher quando l'indirizzo di destinazione di un messaggio corrisponde alla proprietà AddressFilter e l'azione del messaggio corrisponde alla proprietà ContractFilter.
Tutte le proprietà che controllano la durata e il comportamento di una sessione del canale sono disponibili per essere controllate o modificate sull'oggetto ChannelDispatcher. Oltre all'oggetto EndpointDispatcher, questi includono gli oggetti IChannelInitializer personalizzati e gli elementi IChannelListener, ServiceHost e InstanceContext associati.
Costruttori
ChannelDispatcher(IChannelListener) |
Inizializza una nuova istanza della classe ChannelDispatcher. |
ChannelDispatcher(IChannelListener, String) |
Inizializza una nuova istanza della classe ChannelDispatcher. |
ChannelDispatcher(IChannelListener, String, IDefaultCommunicationTimeouts) |
Inizializza una nuova istanza della classe ChannelDispatcher. |
Proprietà
AsynchronousTransactedAcceptEnabled |
Ottiene un valore che indica se le chiamate del metodo Accept transazionali al listener sono asincrone. |
BindingName |
Ottiene il nome dell'elemento di associazione utilizzato per configurare il servizio. |
ChannelInitializers |
Ottiene un set di oggetti IChannelInitializer da utilizzare per controllare e aggiungere uno stato ai canali al momento della creazione. |
DefaultCloseTimeout |
Consente di ottenere l'intervallo di tempo predefinito consentito per la chiusura del dispatcher del canale. |
DefaultOpenTimeout |
Consente di ottenere l'intervallo di tempo predefinito consentito per l'apertura del dispatcher del canale. |
Endpoints |
Ottiene i dispatcher dell'endpoint che inoltrano i messaggi agli endpoint del canale. |
ErrorHandlers |
Ottiene un set di oggetti IErrorHandler che può essere utilizzato per inserire una funzionalità di gestione degli errori personalizzata per un endpoint. |
Host |
Ottiene l'host per il servizio associato al dispatcher. |
Host |
Quando sottoposto a override in una classe derivata, ottiene l'host del servizio associato al ChannelDispatcher. (Ereditato da ChannelDispatcherBase) |
IncludeExceptionDetailInFaults |
Ottiene o imposta un valore che indica se includere i dettagli di un'eccezione in un errore. |
IsDisposed |
Ottiene un valore che indica se l'oggetto di comunicazione è stato eliminato. (Ereditato da CommunicationObject) |
IsTransactedAccept |
Ottiene un valore che indica se le chiamate del metodo Accept al listener vengono eseguite nell'ambito di una transazione. |
IsTransactedReceive |
Ottiene un valore che indica se le chiamate del metodo Receive al listener vengono eseguite nell'ambito di una transazione. |
Listener |
Ottiene il listener associato al ChannelDispatcher. |
ManualAddressing |
Ottiene o imposta un valore che indica se il ChannelDispatcher aggiunge intestazioni di indirizzamento ai messaggi request-reply. |
MaxPendingReceives |
Ottiene o imposta il numero massimo di messaggi in sospeso per canale. |
MaxTransactedBatchSize |
Ottiene o imposta la dimensione massima di un batch transazionale. |
MessageVersion |
Ottiene o imposta le versioni del messaggio SOAP e WS-Addressing utilizzate o previste. |
ReceiveContextEnabled |
Ottiene o imposta un valore che indica se ReceiveContext è abilitato. |
ReceiveSynchronously |
Ottiene o imposta un valore che specifica se il dispatcher utilizza chiamate sincrone per leggere i messaggi dai canali. |
SendAsynchronously |
Ottiene o imposta un valore che indica se i messaggi vengono inviati in modo asincrono. |
ServiceThrottle |
Ottiene o imposta il limite del servizio associato al ChannelDispatcher. |
State |
Ottiene un valore che indica lo stato corrente dell'oggetto di comunicazione. (Ereditato da CommunicationObject) |
ThisLock |
Ottiene il blocco a esclusione reciproca che protegge l'istanza della classe durante una transizione di stato. (Ereditato da CommunicationObject) |
TransactionIsolationLevel |
Ottiene o imposta il livello di isolamento predefinito delle transazioni. |
TransactionTimeout |
Ottiene o imposta un valore che specifica il timeout predefinito per le nuove transazioni create dal dispatcher per conto del servizio. |
Metodi
Abort() |
Determina la transizione immediata di un oggetto di comunicazione dallo stato corrente allo stato di chiusura. (Ereditato da CommunicationObject) |
Attach(ServiceHostBase) |
Allega il ChannelDispatcher all'host. |
Attach(ServiceHostBase) |
Quando sottoposto a override in una classe derivata, allega il ChannelDispatcher a un host specifico. (Ereditato da ChannelDispatcherBase) |
BeginClose(AsyncCallback, Object) |
Consente di iniziare un'operazione asincrona finalizzata a chiudere un oggetto di comunicazione. (Ereditato da CommunicationObject) |
BeginClose(TimeSpan, AsyncCallback, Object) |
Consente di iniziare un'operazione asincrona finalizzata a chiudere un oggetto di comunicazione entro un determinato intervallo di tempo. (Ereditato da CommunicationObject) |
BeginOpen(AsyncCallback, Object) |
Consente di iniziare un'operazione asincrona finalizzata ad aprire un oggetto di comunicazione. (Ereditato da CommunicationObject) |
BeginOpen(TimeSpan, AsyncCallback, Object) |
Consente di iniziare un'operazione asincrona finalizzata ad aprire un oggetto di comunicazione entro un determinato intervallo di tempo. (Ereditato da CommunicationObject) |
Close() |
Comporta la transizione di un oggetto di comunicazione dallo stato corrente allo stato di chiusura. (Ereditato da CommunicationObject) |
Close(TimeSpan) |
Determina la transizione di un oggetto di comunicazione dallo stato corrente allo stato Closed entro un intervallo di tempo specificato. (Ereditato da CommunicationObject) |
CloseInput() |
Interrompe l'accettazione di nuovi canali da parte del listener. |
Detach(ServiceHostBase) |
Disconnette l'host del servizio dal ChannelDispatcher. |
Detach(ServiceHostBase) |
Quando sottoposto a override in una classe derivata, disconnette il ChannelDispatcher da un host specifico. (Ereditato da ChannelDispatcherBase) |
EndClose(IAsyncResult) |
Consente di completare un'operazione asincrona finalizzata a chiudere un oggetto di comunicazione. (Ereditato da CommunicationObject) |
EndOpen(IAsyncResult) |
Consente di completare un'operazione asincrona finalizzata ad aprire un oggetto di comunicazione. (Ereditato da CommunicationObject) |
Equals(Object) |
Determina se l'oggetto specificato è uguale all'oggetto corrente. (Ereditato da Object) |
Fault() |
Determina la transizione di un oggetto di comunicazione dallo stato corrente allo stato Faulted. (Ereditato da CommunicationObject) |
GetCommunicationObjectType() |
Ottiene il tipo di oggetto di comunicazione. (Ereditato da CommunicationObject) |
GetHashCode() |
Funge da funzione hash predefinita. (Ereditato da Object) |
GetType() |
Ottiene l'oggetto Type dell'istanza corrente. (Ereditato da Object) |
MemberwiseClone() |
Crea una copia superficiale dell'oggetto Object corrente. (Ereditato da Object) |
OnAbort() |
Interrompe il listener associato al dispatcher. |
OnBeginClose(TimeSpan, AsyncCallback, Object) |
Avvia un'operazione asincrona per chiudere un listener del canale per il dispatcher che deve essere completato entro un intervallo di tempo specificato. |
OnBeginOpen(TimeSpan, AsyncCallback, Object) |
Avvia un'operazione asincrona per aprire un listener del canale per il dispatcher che deve essere completato entro un intervallo di tempo specificato. |
OnClose(TimeSpan) |
Chiude il listener del canale associato al dispatcher entro un intervallo di tempo specificato. |
OnCloseAsync(TimeSpan) |
Un componente che accetta i canali e li associa a un servizio. |
OnCloseAsync(TimeSpan) |
Un componente che accetta i canali e li associa a un servizio. (Ereditato da CommunicationObject) |
OnClosed() |
Fornisce una traccia della chiusura del dispatcher dell'endpoint associato al ChannelDispatcher. |
OnClosing() |
Viene chiamato durante la transizione di un oggetto di comunicazione allo stato di chiusura. (Ereditato da CommunicationObject) |
OnEndClose(IAsyncResult) |
Completa l'operazione asincrona di chiusura di un listener del canale per il dispatcher. |
OnEndOpen(IAsyncResult) |
Completa l'operazione asincrona di apertura di un listener del canale per il dispatcher. |
OnFaulted() |
Inserisce l'elaborazione in un oggetto di comunicazione dopo che ha eseguito la transizione allo stato Faulted in seguito alla chiamata di un'operazione di errore sincrona. (Ereditato da CommunicationObject) |
OnOpen(TimeSpan) |
Apre il listener associato al ChannelDispatcher. |
OnOpenAsync(TimeSpan) |
Un componente che accetta i canali e li associa a un servizio. |
OnOpenAsync(TimeSpan) |
Un componente che accetta i canali e li associa a un servizio. (Ereditato da CommunicationObject) |
OnOpened() |
Popola e convalida la tabella dei filtri utilizzata per la distribuzione agli endpoint. |
OnOpening() |
Verifica se il ChannelDispatcher viene allegato a un host. |
Open() |
Comporta la transizione di un oggetto di comunicazione dallo stato di creazione allo stato di apertura. (Ereditato da CommunicationObject) |
Open(TimeSpan) |
Comporta la transizione di un oggetto di comunicazione dallo stato di creazione allo stato di apertura entro un determinato intervallo di tempo. (Ereditato da CommunicationObject) |
ThrowIfDisposed() |
Se l'oggetto di comunicazione è stato eliminato, genera un'eccezione. (Ereditato da CommunicationObject) |
ThrowIfDisposedOrImmutable() |
Se la proprietà State dell'oggetto di comunicazione non è impostata su Created, genera un'eccezione. (Ereditato da CommunicationObject) |
ThrowIfDisposedOrNotOpen() |
Se l'oggetto di comunicazione non si trova nello stato Opened, genera un'eccezione. (Ereditato da CommunicationObject) |
ToString() |
Restituisce una stringa che rappresenta l'oggetto corrente. (Ereditato da Object) |
Eventi
Closed |
Si verifica quando un oggetto di comunicazione esegue la transizione allo stato Closed. (Ereditato da CommunicationObject) |
Closing |
Si verifica quando un oggetto di comunicazione esegue la transizione allo stato Closing. (Ereditato da CommunicationObject) |
Faulted |
Si verifica quando un oggetto di comunicazione esegue la transizione allo stato Faulted. (Ereditato da CommunicationObject) |
Opened |
Si verifica quando un oggetto di comunicazione esegue la transizione allo stato Opened. (Ereditato da CommunicationObject) |
Opening |
Si verifica quando un oggetto di comunicazione esegue la transizione allo stato Opening. (Ereditato da CommunicationObject) |
Implementazioni dell'interfaccia esplicita
IAsyncCommunicationObject.CloseAsync(TimeSpan) |
Un componente che accetta i canali e li associa a un servizio. (Ereditato da CommunicationObject) |
IAsyncCommunicationObject.OpenAsync(TimeSpan) |
Un componente che accetta i canali e li associa a un servizio. (Ereditato da CommunicationObject) |
Metodi di estensione
CloseHelperAsync(ICommunicationObject, TimeSpan) |
Un componente che accetta i canali e li associa a un servizio. |
OpenHelperAsync(ICommunicationObject, TimeSpan) |
Un componente che accetta i canali e li associa a un servizio. |
GetInternalCloseTimeout(CommunicationObject) |
Un componente che accetta i canali e li associa a un servizio. |