ChannelDispatcher Classe

Definizione

Un componente che accetta i canali e li associa a un servizio.A component that accepts channels and associates them with a 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
Ereditarietà

Esempi

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.A ChannelDispatcher object associates an IChannelListener at a particular URI (called a listen URI) with an instance of a service. 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.Each ServiceHost object can have many ChannelDispatcher objects, each associated with a different listener and listen URI for that service.

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à.When a message arrives, the ChannelDispatcher queries each of the associated EndpointDispatcher objects whether the endpoint can accept the message, and passes the message to the one that can. 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.The EndpointDispatcher object is responsible for processing messages from a ChannelDispatcher when the destination address of a message matches the AddressFilter property and the message action matches the ContractFilter property.

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.All properties that control the lifetime and behavior of a channel session are available for inspection or modification on the ChannelDispatcher object. Oltre all'oggetto EndpointDispatcher, questi includono gli oggetti IChannelInitializer personalizzati e gli elementi IChannelListener, ServiceHost e InstanceContext associati.In addition to the EndpointDispatcher, these include custom IChannelInitializer objects, the IChannelListener, the ServiceHost, the associated and InstanceContext.

Costruttori

ChannelDispatcher(IChannelListener)

Inizializza una nuova istanza della classe ChannelDispatcher.Initializes a new instance of the ChannelDispatcher class.

ChannelDispatcher(IChannelListener, String)

Inizializza una nuova istanza della classe ChannelDispatcher.Initializes a new instance of the ChannelDispatcher class.

ChannelDispatcher(IChannelListener, String, IDefaultCommunicationTimeouts)

Inizializza una nuova istanza della classe ChannelDispatcher.Initializes a new instance of the ChannelDispatcher class.

Proprietà

AsynchronousTransactedAcceptEnabled

Ottiene un valore che indica se le chiamate del metodo Accept transazionali al listener sono asincrone.Gets a value that indicates whether the transacted accept method calls on listener are asynchronous.

BindingName

Ottiene il nome dell'elemento di associazione utilizzato per configurare il servizio.Gets the name of the binding used to configure the service.

ChannelInitializers

Ottiene un set di oggetti IChannelInitializer da utilizzare per controllare e aggiungere uno stato ai canali al momento della creazione.Gets a set of IChannelInitializer objects that you can use to inspect and add state to channels when they are first created.

DefaultCloseTimeout

Consente di ottenere l'intervallo di tempo predefinito consentito per la chiusura del dispatcher del canale.Gets the default interval of time allowed for the channel dispatcher to close.

DefaultOpenTimeout

Consente di ottenere l'intervallo di tempo predefinito consentito per l'apertura del dispatcher del canale.Gets the default interval of time allowed for the channel dispatcher to open.

Endpoints

Ottiene i dispatcher dell'endpoint che inoltrano i messaggi agli endpoint del canale.Gets the endpoint dispatchers which forward messages to the channel endpoints.

ErrorHandlers

Ottiene un set di oggetti IErrorHandler che può essere utilizzato per inserire una funzionalità di gestione degli errori personalizzata per un endpoint.Gets a set of IErrorHandler objects that can be used to insert custom error handling functionality for an endpoint.

Host

Ottiene l'host per il servizio associato al dispatcher.Gets the host for the service associated with the dispatcher.

IncludeExceptionDetailInFaults

Ottiene o imposta un valore che indica se includere i dettagli di un'eccezione in un errore.Gets or sets a value that indicates whether to include the details about an exception in a fault.

IsDisposed

Ottiene un valore che indica se l'oggetto di comunicazione è stato eliminato.Gets a value that indicates whether the communication object has been disposed.

(Ereditato da CommunicationObject)
IsTransactedAccept

Ottiene un valore che indica se le chiamate del metodo Accept al listener vengono eseguite nell'ambito di una transazione.Gets a value that indicates whether the accept method calls on the listener are done under a transaction.

IsTransactedReceive

Ottiene un valore che indica se le chiamate del metodo Receive al listener vengono eseguite nell'ambito di una transazione.Gets a value that indicates whether the receive method calls on the listener are done under a transaction.

Listener

Ottiene il listener associato al ChannelDispatcher.Gets the listener associated with the channel dispatcher.

ManualAddressing

Ottiene o imposta un valore che indica se il ChannelDispatcher aggiunge intestazioni di indirizzamento ai messaggi request-reply.Gets or sets a value that indicates whether the channel dispatcher adds addressing headers to request-reply messages.

MaxPendingReceives

Ottiene o imposta il numero massimo di messaggi in sospeso per canale.Gets or sets the maximum pending messages per channel.

MaxTransactedBatchSize

Ottiene o imposta la dimensione massima di un batch transazionale.Gets or sets the maximum size for a transacted batch.

MessageVersion

Ottiene o imposta le versioni del messaggio SOAP e WS-Addressing utilizzate o previste.Gets or sets the SOAP message and WS-Addressing versions that are used or expected.

ReceiveContextEnabled

Ottiene o imposta un valore che indica se ReceiveContext è abilitato.Gets or sets whether ReceiveContext is enabled.

ReceiveSynchronously

Ottiene o imposta un valore che specifica se il dispatcher utilizza chiamate sincrone per leggere i messaggi dai canali.Gets or sets a value that specifies whether the dispatcher uses synchronous calls to read messages from channels.

SendAsynchronously

Ottiene o imposta un valore che indica se i messaggi vengono inviati in modo asincrono.Gets or sets whether messages are sent asynchronously.

ServiceThrottle

Ottiene o imposta il limite del servizio associato al ChannelDispatcher.Gets or sets the service throttle for the service associated with the channel dispatcher.

State

Ottiene un valore che indica lo stato corrente dell'oggetto di comunicazione.Gets a value that indicates the current state of the communication object.

(Ereditato da CommunicationObject)
ThisLock

Ottiene il blocco a esclusione reciproca che protegge l'istanza della classe durante una transizione di stato.Gets the mutually exclusive lock that protects the class instance during a state transition.

(Ereditato da CommunicationObject)
TransactionIsolationLevel

Ottiene o imposta il livello di isolamento predefinito delle transazioni.Gets or sets the default isolation level for transactions.

TransactionTimeout

Ottiene o imposta un valore che specifica il timeout predefinito per le nuove transazioni create dal dispatcher per conto del servizio.Gets or sets a value that specifies the default timeout for new transactions created by the dispatcher on behalf of the service.

Metodi

Abort()

Determina la transizione immediata di un oggetto di comunicazione dallo stato corrente allo stato di chiusura.Causes a communication object to transition immediately from its current state into the closing state.

(Ereditato da CommunicationObject)
Attach(ServiceHostBase)

Allega il ChannelDispatcher all'host.Attaches the channel dispatcher to the host.

BeginClose(AsyncCallback, Object)

Avvia un'operazione asincrona per chiudere un oggetto di comunicazione.Begins an asynchronous operation to close a communication object.

(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.Begins an asynchronous operation to close a communication object with a specified timeout.

(Ereditato da CommunicationObject)
BeginOpen(AsyncCallback, Object)

Avvia un'operazione asincrona per aprire un oggetto di comunicazione.Begins an asynchronous operation to open a communication object.

(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.Begins an asynchronous operation to open a communication object within a specified interval of time.

(Ereditato da CommunicationObject)
Close()

Comporta la transizione di un oggetto di comunicazione dallo stato attuale allo stato Closed.Causes a communication object to transition from its current state into the closed state.

(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.Causes a communication object to transition from its current state into the closed state within a specified interval of time.

(Ereditato da CommunicationObject)
CloseInput()

Interrompe l'accettazione di nuovi canali da parte del listener.Stops the listener from accepting new channels.

Detach(ServiceHostBase)

Disconnette l'host del servizio dal ChannelDispatcher.Detaches the service host from the channel dispatcher.

EndClose(IAsyncResult)

Consente di completare un'operazione asincrona finalizzata a chiudere un oggetto di comunicazione.Completes an asynchronous operation to close a communication object.

(Ereditato da CommunicationObject)
EndOpen(IAsyncResult)

Consente di completare un'operazione asincrona finalizzata ad aprire un oggetto di comunicazione.Completes an asynchronous operation to open a communication object.

(Ereditato da CommunicationObject)
Equals(Object)

Determina se l'oggetto specificato è uguale all'oggetto corrente.Determines whether the specified object is equal to the current object.

(Ereditato da Object)
Fault()

Determina la transizione di un oggetto di comunicazione dallo stato corrente allo stato Faulted.Causes a communication object to transition from its current state into the faulted state.

(Ereditato da CommunicationObject)
GetCommunicationObjectType()

Ottiene il tipo di oggetto di comunicazione.Gets the type of communication object.

(Ereditato da CommunicationObject)
GetHashCode()

Funge da funzione hash predefinita.Serves as the default hash function.

(Ereditato da Object)
GetType()

Ottiene l'oggetto Type dell'istanza corrente.Gets the Type of the current instance.

(Ereditato da Object)
MemberwiseClone()

Crea una copia superficiale dell'oggetto Object corrente.Creates a shallow copy of the current Object.

(Ereditato da Object)
OnAbort()

Interrompe il listener associato al dispatcher.Aborts the listener associated with the 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.Begins an asynchronous operation to close a channel listener for the dispatcher that must be completed within a specified interval of time.

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.Begins an asynchronous operation to open a channel listener for the dispatcher that must be completed within a specified interval of time.

OnClose(TimeSpan)

Chiude il listener del canale associato al dispatcher entro un intervallo di tempo specificato.Closes the channel listener associated with the dispatcher within a specified interval of time.

OnClosed()

Fornisce una traccia della chiusura del dispatcher dell'endpoint associato al ChannelDispatcher.Provides a trace of the closing of the endpoint dispatchers associated with the channel dispatcher.

OnClosing()

Viene chiamato durante la transizione di un oggetto di comunicazione allo stato di chiusura.Invoked during the transition of a communication object into the closing state.

(Ereditato da CommunicationObject)
OnEndClose(IAsyncResult)

Completa l'operazione asincrona di chiusura di un listener del canale per il dispatcher.Completes an asynchronous operation to close a channel listener for the dispatcher.

OnEndOpen(IAsyncResult)

Completa l'operazione asincrona di apertura di un listener del canale per il dispatcher.Completes an asynchronous operation to open a channel listener for the 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.Inserts processing on a communication object after it transitions to the faulted state due to the invocation of a synchronous fault operation.

(Ereditato da CommunicationObject)
OnOpen(TimeSpan)

Apre il listener associato al ChannelDispatcher.Opens the listener associated with the channel dispatcher.

OnOpened()

Popola e convalida la tabella dei filtri utilizzata per la distribuzione agli endpoint.Populates and validates filter table used to dispatch to the endpoints.

OnOpening()

Verifica se il ChannelDispatcher viene allegato a un host.Checks whether the channel dispatcher is attached to a host.

Open()

Comporta la transizione di un oggetto di comunicazione dallo stato di creazione allo stato di apertura.Causes a communication object to transition from the created state into the opened state.

(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.Causes a communication object to transition from the created state into the opened state within a specified interval of time.

(Ereditato da CommunicationObject)
ThrowIfDisposed()

Se l'oggetto di comunicazione è stato eliminato, genera un'eccezione.Throws an exception if the communication object is disposed.

(Ereditato da CommunicationObject)
ThrowIfDisposedOrImmutable()

Se la proprietà State dell'oggetto di comunicazione non è impostata su Created, genera un'eccezione.Throws an exception if the communication object the State property is not set to the Created state.

(Ereditato da CommunicationObject)
ThrowIfDisposedOrNotOpen()

Se l'oggetto di comunicazione non si trova nello stato Opened, genera un'eccezione.Throws an exception if the communication object is not in the Opened state.

(Ereditato da CommunicationObject)
ToString()

Restituisce una stringa che rappresenta l'oggetto corrente.Returns a string that represents the current object.

(Ereditato da Object)

Eventi

Closed

Si verifica quando un oggetto di comunicazione esegue la transizione allo stato Closed.Occurs when a communication object transitions into the closed state.

(Ereditato da CommunicationObject)
Closing

Si verifica quando un oggetto di comunicazione esegue la transizione allo stato Closing.Occurs when a communication object transitions into the closing state.

(Ereditato da CommunicationObject)
Faulted

Si verifica quando un oggetto di comunicazione esegue la transizione allo stato Faulted.Occurs when a communication object transitions into the faulted state.

(Ereditato da CommunicationObject)
Opened

Si verifica quando un oggetto di comunicazione esegue la transizione allo stato Opened.Occurs when a communication object transitions into the opened state.

(Ereditato da CommunicationObject)
Opening

Si verifica quando un oggetto di comunicazione esegue la transizione allo stato Opening.Occurs when a communication object transitions into the opening state.

(Ereditato da CommunicationObject)

Si applica a