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.
Componente che accetta i canali e li associa a un servizio.
public ref class ChannelDispatcher
public ref class ChannelDispatcher : System::ServiceModel::Dispatcher::ChannelDispatcherBase
public class ChannelDispatcher
public class ChannelDispatcher : System.ServiceModel.Dispatcher.ChannelDispatcherBase
type ChannelDispatcher = class
type ChannelDispatcher = class
inherit ChannelDispatcherBase
Public Class ChannelDispatcher
Public Class ChannelDispatcher
Inherits ChannelDispatcherBase
- Ereditarietà
-
ChannelDispatcher
- 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 ChannelDispatcher oggetto associa un oggetto IChannelListener a un particolare URI (denominato URI di ascolto) a un'istanza di un servizio. Ogni ServiceHost oggetto può avere molti ChannelDispatcher oggetti, ognuno associato a un listener diverso e a un URI di ascolto per tale servizio.
Quando arriva un messaggio, esegue una ChannelDispatcher query su ognuno degli oggetti associati EndpointDispatcher se l'endpoint può accettare il messaggio e passa il messaggio a quello che può. L'oggetto EndpointDispatcher è responsabile dell'elaborazione dei messaggi da un ChannelDispatcher oggetto quando l'indirizzo di destinazione di un messaggio corrisponde alla AddressFilter proprietà e l'azione del messaggio corrisponde alla ContractFilter proprietà .
Tutte le proprietà che controllano la durata e il comportamento di una sessione del canale sono disponibili per l'ispezione o la modifica dell'oggetto ChannelDispatcher . Oltre a EndpointDispatcher, questi includono oggetti personalizzati IChannelInitializer , , IChannelListener, l'oggetto ServiceHostassociato e InstanceContext.
Costruttori
| Nome | Descrizione |
|---|---|
| ChannelDispatcher(IChannelListener, String, IDefaultCommunicationTimeouts) |
Inizializza una nuova istanza della classe ChannelDispatcher. |
| ChannelDispatcher(IChannelListener, String) |
Inizializza una nuova istanza della classe ChannelDispatcher. |
| ChannelDispatcher(IChannelListener) |
Inizializza una nuova istanza della classe ChannelDispatcher. |
Proprietà
| Nome | Descrizione |
|---|---|
| AsynchronousTransactedAcceptEnabled |
Ottiene un valore che indica se le chiamate al metodo accept transazionate nel listener sono asincrone. |
| BindingName |
Ottiene il nome dell'associazione utilizzata per configurare il servizio. |
| ChannelInitializers |
Ottiene un set di IChannelInitializer oggetti che è possibile utilizzare per esaminare e aggiungere lo stato ai canali al momento della creazione. |
| DefaultCloseTimeout |
Ottiene l'intervallo di tempo predefinito consentito per la chiusura del dispatcher del canale. |
| DefaultOpenTimeout |
Ottiene l'intervallo di tempo predefinito consentito per l'apertura del dispatcher del canale. |
| Endpoints |
Ottiene i dispatcher endpoint che inoltrano i messaggi agli endpoint del canale. |
| ErrorHandlers |
Ottiene un set di IErrorHandler oggetti che possono essere utilizzati per inserire funzionalità di gestione degli errori personalizzate per un endpoint. |
| Host |
Ottiene l'host per il servizio associato al dispatcher. |
| IncludeExceptionDetailInFaults |
Ottiene o imposta un valore che indica se includere i dettagli relativi a 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 al metodo accept sul listener vengono eseguite in una transazione. |
| IsTransactedReceive |
Ottiene un valore che indica se le chiamate al metodo di ricezione sul listener vengono eseguite in una transazione. |
| Listener |
Ottiene il listener associato al dispatcher del canale. |
| ManualAddressing |
Ottiene o imposta un valore che indica se il dispatcher del canale 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 le dimensioni massime per un batch transazionato. |
| MessageVersion |
Ottiene o imposta il messaggio SOAP e WS-Addressing versioni 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 la limitazione del servizio per il servizio associato al dispatcher del canale. |
| State |
Ottiene un valore che indica lo stato corrente dell'oggetto di comunicazione. (Ereditato da CommunicationObject) |
| ThisLock |
Ottiene il blocco che protegge l'istanza della classe durante una transizione di stato. (Ereditato da CommunicationObject) |
| TransactionIsolationLevel |
Ottiene o imposta il livello di isolamento predefinito per le transazioni. |
| TransactionTimeout |
Ottiene o imposta un valore che specifica il timeout predefinito per le nuove transazioni create dal dispatcher per conto del servizio. |
Metodi
| Nome | Descrizione |
|---|---|
| Abort() |
Fa sì che un oggetto di comunicazione passi immediatamente dallo stato corrente allo stato di chiusura. (Ereditato da CommunicationObject) |
| Attach(ServiceHostBase) |
Collega il dispatcher del canale all'host. |
| BeginClose(AsyncCallback, Object) |
Avvia un'operazione asincrona per chiudere un oggetto di comunicazione. (Ereditato da CommunicationObject) |
| BeginClose(TimeSpan, AsyncCallback, Object) |
Avvia un'operazione asincrona per chiudere un oggetto di comunicazione con un timeout specificato. (Ereditato da CommunicationObject) |
| BeginOpen(AsyncCallback, Object) |
Avvia un'operazione asincrona per aprire un oggetto di comunicazione. (Ereditato da CommunicationObject) |
| BeginOpen(TimeSpan, AsyncCallback, Object) |
Avvia un'operazione asincrona per aprire un oggetto di comunicazione entro un intervallo di tempo specificato. (Ereditato da CommunicationObject) |
| Close() |
Fa sì che un oggetto di comunicazione passi dallo stato corrente allo stato chiuso. (Ereditato da CommunicationObject) |
| Close(TimeSpan) |
Fa sì che un oggetto di comunicazione passi dallo stato corrente allo stato chiuso entro un intervallo di tempo specificato. (Ereditato da CommunicationObject) |
| CloseInput() |
Impedisce al listener di accettare nuovi canali. |
| Detach(ServiceHostBase) |
Scollega l'host del servizio dal dispatcher del canale. |
| EndClose(IAsyncResult) |
Completa un'operazione asincrona per chiudere un oggetto di comunicazione. (Ereditato da CommunicationObject) |
| EndOpen(IAsyncResult) |
Completa un'operazione asincrona per aprire un oggetto di comunicazione. (Ereditato da CommunicationObject) |
| Equals(Object) |
Determina se l'oggetto specificato è uguale all'oggetto corrente. (Ereditato da Object) |
| Fault() |
Fa sì che un oggetto di comunicazione passi dallo stato corrente allo stato di errore. (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 il Type dell'istanza corrente. (Ereditato da Object) |
| MemberwiseClone() |
Crea una copia superficiale del Objectcorrente. (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. |
| OnClosed() |
Fornisce una traccia della chiusura dei dispatcher dell'endpoint associati al dispatcher del canale. |
| OnClosing() |
Richiamato durante la transizione di un oggetto di comunicazione nello stato di chiusura. (Ereditato da CommunicationObject) |
| OnEndClose(IAsyncResult) |
Completa un'operazione asincrona per chiudere un listener del canale per il dispatcher. |
| OnEndOpen(IAsyncResult) |
Completa un'operazione asincrona per aprire un listener del canale per il dispatcher. |
| OnFaulted() |
Inserisce l'elaborazione in un oggetto di comunicazione dopo la transizione allo stato di errore a causa della chiamata di un'operazione di errore sincrono. (Ereditato da CommunicationObject) |
| OnOpen(TimeSpan) |
Apre il listener associato al dispatcher del canale. |
| OnOpened() |
Popola e convalida la tabella dei filtri usata per l'invio agli endpoint. |
| OnOpening() |
Verifica se il dispatcher del canale è collegato a un host. |
| Open() |
Fa sì che un oggetto di comunicazione passi dallo stato creato allo stato aperto. (Ereditato da CommunicationObject) |
| Open(TimeSpan) |
Fa sì che un oggetto di comunicazione passi dallo stato creato allo stato aperto entro un intervallo di tempo specificato. (Ereditato da CommunicationObject) |
| ThrowIfDisposed() |
Genera un'eccezione se l'oggetto di comunicazione viene eliminato. (Ereditato da CommunicationObject) |
| ThrowIfDisposedOrImmutable() |
Genera un'eccezione se l'oggetto di comunicazione la State proprietà non è impostata sullo Created stato . (Ereditato da CommunicationObject) |
| ThrowIfDisposedOrNotOpen() |
Genera un'eccezione se l'oggetto di comunicazione non è nello Opened stato . (Ereditato da CommunicationObject) |
| ToString() |
Restituisce una stringa che rappresenta l'oggetto corrente. (Ereditato da Object) |
Eventi
| Nome | Descrizione |
|---|---|
| Closed |
Si verifica quando un oggetto di comunicazione passa allo stato chiuso. (Ereditato da CommunicationObject) |
| Closing |
Si verifica quando un oggetto di comunicazione passa allo stato di chiusura. (Ereditato da CommunicationObject) |
| Faulted |
Si verifica quando un oggetto di comunicazione passa allo stato di errore. (Ereditato da CommunicationObject) |
| Opened |
Si verifica quando un oggetto di comunicazione passa allo stato aperto. (Ereditato da CommunicationObject) |
| Opening |
Si verifica quando un oggetto di comunicazione passa allo stato di apertura. (Ereditato da CommunicationObject) |