Export (0) Print
Expand All
This topic has not yet been rated - Rate this topic

ChannelDispatcher Class

A component that accepts channels and associates them with a service.

Namespace:  System.ServiceModel.Dispatcher
Assembly:  System.ServiceModel (in System.ServiceModel.dll)
public class ChannelDispatcher : ChannelDispatcherBase

The ChannelDispatcher type exposes the following members.

  NameDescription
Public methodChannelDispatcher(IChannelListener)Initializes a new instance of the ChannelDispatcher class.
Public methodChannelDispatcher(IChannelListener, String)Initializes a new instance of the ChannelDispatcher class.
Public methodChannelDispatcher(IChannelListener, String, IDefaultCommunicationTimeouts)Initializes a new instance of the ChannelDispatcher class.
Top
  NameDescription
Public propertyAsynchronousTransactedAcceptEnabledGets a value that indicates whether the transacted accept method calls on listener are asynchronous.
Public propertyBindingNameGets the name of the binding used to configure the service.
Public propertyChannelInitializersGets a set of IChannelInitializer objects that you can use to inspect and add state to channels when they are first created.
Protected propertyDefaultCloseTimeoutGets the default interval of time allowed for the channel dispatcher to close. (Overrides CommunicationObject.DefaultCloseTimeout.)
Protected propertyDefaultOpenTimeoutGets the default interval of time allowed for the channel dispatcher to open. (Overrides CommunicationObject.DefaultOpenTimeout.)
Public propertyEndpointsGets the endpoint dispatchers which forward messages to the channel endpoints.
Public propertyErrorHandlersGets a set of IErrorHandler objects that can be used to insert custom error handling functionality for an endpoint.
Public propertyHostGets the host for the service associated with the dispatcher. (Overrides ChannelDispatcherBase.Host.)
Public propertyIncludeExceptionDetailInFaultsGets or sets a value that indicates whether to include the details about an exception in a fault.
Protected propertyIsDisposedGets a value that indicates whether the communication object has been disposed. (Inherited from CommunicationObject.)
Public propertyIsTransactedAcceptGets a value that indicates whether the accept method calls on the listener are done under a transaction.
Public propertyIsTransactedReceiveGets a value that indicates whether the receive method calls on the listener are done under a transaction.
Public propertyListenerGets the listener associated with the channel dispatcher. (Overrides ChannelDispatcherBase.Listener.)
Public propertyManualAddressingGets or sets a value that indicates whether the channel dispatcher adds addressing headers to request-reply messages.
Public propertyMaxPendingReceivesGets or sets the maximum pending messages per channel.
Public propertyMaxTransactedBatchSizeGets or sets the maximum size for a transacted batch.
Public propertyMessageVersionGets or sets the SOAP message and WS-Addressing versions that are used or expected.
Public propertyReceiveContextEnabledGets or sets whether ReceiveContext is enabled.
Public propertyReceiveSynchronouslyGets or sets a value that specifies whether the dispatcher uses synchronous calls to read messages from channels.
Public propertySendAsynchronouslyGets or sets whether messages are sent asynchronously.
Public propertyServiceThrottleGets or sets the service throttle for the service associated with the channel dispatcher.
Public propertyStateGets a value that indicates the current state of the communication object. (Inherited from CommunicationObject.)
Protected propertyThisLockGets the mutually exclusive lock that protects the class instance during a state transition. (Inherited from CommunicationObject.)
Public propertyTransactionIsolationLevelGets or sets the default isolation level for transactions.
Public propertyTransactionTimeoutGets or sets a value that specifies the default timeout for new transactions created by the dispatcher on behalf of the service.
Top
  NameDescription
Public methodAbortCauses a communication object to transition immediately from its current state into the closing state. (Inherited from CommunicationObject.)
Protected methodAttachAttaches the channel dispatcher to the host. (Overrides ChannelDispatcherBase.Attach(ServiceHostBase).)
Public methodBeginClose(AsyncCallback, Object)Begins an asynchronous operation to close a communication object. (Inherited from CommunicationObject.)
Public methodBeginClose(TimeSpan, AsyncCallback, Object)Begins an asynchronous operation to close a communication object with a specified timeout. (Inherited from CommunicationObject.)
Public methodBeginOpen(AsyncCallback, Object)Begins an asynchronous operation to open a communication object. (Inherited from CommunicationObject.)
Public methodBeginOpen(TimeSpan, AsyncCallback, Object)Begins an asynchronous operation to open a communication object within a specified interval of time. (Inherited from CommunicationObject.)
Public methodClose()Causes a communication object to transition from its current state into the closed state. (Inherited from CommunicationObject.)
Public methodClose(TimeSpan)Causes a communication object to transition from its current state into the closed state within a specified interval of time. (Inherited from CommunicationObject.)
Public methodCloseInputStops the listener from accepting new channels. (Overrides ChannelDispatcherBase.CloseInput().)
Protected methodDetachDetaches the service host from the channel dispatcher. (Overrides ChannelDispatcherBase.Detach(ServiceHostBase).)
Public methodEndCloseCompletes an asynchronous operation to close a communication object. (Inherited from CommunicationObject.)
Public methodEndOpenCompletes an asynchronous operation to open a communication object. (Inherited from CommunicationObject.)
Public methodEquals(Object)Determines whether the specified object is equal to the current object. (Inherited from Object.)
Protected methodFaultCauses a communication object to transition from its current state into the faulted state. (Inherited from CommunicationObject.)
Protected methodFinalizeAllows an object to try to free resources and perform other cleanup operations before it is reclaimed by garbage collection. (Inherited from Object.)
Protected methodGetCommunicationObjectTypeGets the type of communication object. (Inherited from CommunicationObject.)
Public methodGetHashCodeServes as the default hash function. (Inherited from Object.)
Public methodGetTypeGets the Type of the current instance. (Inherited from Object.)
Protected methodMemberwiseCloneCreates a shallow copy of the current Object. (Inherited from Object.)
Protected methodOnAbortAborts the listener associated with the dispatcher. (Overrides CommunicationObject.OnAbort().)
Protected methodOnBeginCloseBegins an asynchronous operation to close a channel listener for the dispatcher that must be completed within a specified interval of time. (Overrides CommunicationObject.OnBeginClose(TimeSpan, AsyncCallback, Object).)
Protected methodOnBeginOpenBegins an asynchronous operation to open a channel listener for the dispatcher that must be completed within a specified interval of time. (Overrides CommunicationObject.OnBeginOpen(TimeSpan, AsyncCallback, Object).)
Protected methodOnCloseCloses the channel listener associated with the dispatcher within a specified interval of time. (Overrides CommunicationObject.OnClose(TimeSpan).)
Protected methodOnClosedProvides a trace of the closing of the endpoint dispatchers associated with the channel dispatcher. (Overrides CommunicationObject.OnClosed().)
Protected methodOnClosingInvoked during the transition of a communication object into the closing state. (Inherited from CommunicationObject.)
Protected methodOnEndCloseCompletes an asynchronous operation to close a channel listener for the dispatcher. (Overrides CommunicationObject.OnEndClose(IAsyncResult).)
Protected methodOnEndOpenCompletes an asynchronous operation to open a channel listener for the dispatcher. (Overrides CommunicationObject.OnEndOpen(IAsyncResult).)
Protected methodOnFaultedInserts processing on a communication object after it transitions to the faulted state due to the invocation of a synchronous fault operation. (Inherited from CommunicationObject.)
Protected methodOnOpenOpens the listener associated with the channel dispatcher. (Overrides CommunicationObject.OnOpen(TimeSpan).)
Protected methodOnOpenedPopulates and validates filter table used to dispatch to the endpoints. (Overrides CommunicationObject.OnOpened().)
Protected methodOnOpeningChecks whether the channel dispatcher is attached to a host. (Overrides CommunicationObject.OnOpening().)
Public methodOpen()Causes a communication object to transition from the created state into the opened state. (Inherited from CommunicationObject.)
Public methodOpen(TimeSpan)Causes a communication object to transition from the created state into the opened state within a specified interval of time. (Inherited from CommunicationObject.)
Protected methodThrowIfDisposedThrows an exception if the communication object is disposed. (Inherited from CommunicationObject.)
Protected methodThrowIfDisposedOrImmutableThrows an exception if the communication object the State property is not set to the Created state. (Inherited from CommunicationObject.)
Protected methodThrowIfDisposedOrNotOpenThrows an exception if the communication object is not in the Opened state. (Inherited from CommunicationObject.)
Public methodToStringReturns a string that represents the current object. (Inherited from Object.)
Top
  NameDescription
Public eventClosedOccurs when a communication object transitions into the closed state. (Inherited from CommunicationObject.)
Public eventClosingOccurs when a communication object transitions into the closing state. (Inherited from CommunicationObject.)
Public eventFaultedOccurs when a communication object transitions into the faulted state. (Inherited from CommunicationObject.)
Public eventOpenedOccurs when a communication object transitions into the opened state. (Inherited from CommunicationObject.)
Public eventOpeningOccurs when a communication object transitions into the opening state. (Inherited from CommunicationObject.)
Top

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

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. 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.

All properties that control the lifetime and behavior of a channel session are available for inspection or modification on the ChannelDispatcher object. In addition to the EndpointDispatcher, these include custom IChannelInitializer objects, the IChannelListener, the ServiceHost, the associated and InstanceContext.

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

.NET Framework

Supported in: 4.5.1, 4.5, 4, 3.5, 3.0

.NET Framework Client Profile

Supported in: 4, 3.5 SP1

Windows Phone 8.1, Windows Phone 8, Windows 8.1, Windows Server 2012 R2, Windows 8, Windows Server 2012, Windows 7, Windows Vista SP2, Windows Server 2008 (Server Core Role not supported), Windows Server 2008 R2 (Server Core Role supported with SP1 or later; Itanium not supported)

The .NET Framework does not support all versions of every platform. For a list of the supported versions, see .NET Framework System Requirements.

Any public static (Shared in Visual Basic) members of this type are thread safe. Any instance members are not guaranteed to be thread safe.
Did you find this helpful?
(1500 characters remaining)
Thank you for your feedback
Show:
© 2014 Microsoft. All rights reserved.