ChannelDispatcher Třída

Definice

Komponenta, která přijímá kanály a přidružuje je ke službě.

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
Dědičnost

Příklady

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

Poznámky

Objekt ChannelDispatcher přidruží IChannelListener na konkrétním identifikátoru URI (označovaný jako identifikátor URI naslouchání) k instanci služby. Každý ServiceHost objekt může mít mnoho ChannelDispatcher objektů, z nichž každý je přidružený k jinému naslouchacímu procesu a identifikátoru URI naslouchání pro danou službu.

Když přijde zpráva, dotazuje se každého z přidružených EndpointDispatcher objektů, ChannelDispatcher jestli koncový bod může zprávu přijmout, a předá zprávu tomu, který ji přijme. Objekt EndpointDispatcher je zodpovědný za zpracování zpráv z objektu, ChannelDispatcher pokud cílová adresa zprávy odpovídá AddressFilter vlastnosti a akce zprávy odpovídá ContractFilter vlastnosti .

Všechny vlastnosti, které řídí životnost a chování relace kanálu, jsou k dispozici pro kontrolu nebo úpravy objektu ChannelDispatcher . Kromě objektu EndpointDispatcherzahrnují vlastní IChannelInitializer objekty, IChannelListenerobjekty , ServiceHostobjekty , přidružené objekty a InstanceContext.

Konstruktory

ChannelDispatcher(IChannelListener)

Inicializuje novou instanci ChannelDispatcher třídy .

ChannelDispatcher(IChannelListener, String)

Inicializuje novou instanci ChannelDispatcher třídy .

ChannelDispatcher(IChannelListener, String, IDefaultCommunicationTimeouts)

Inicializuje novou instanci ChannelDispatcher třídy .

Vlastnosti

AsynchronousTransactedAcceptEnabled

Získá hodnotu, která označuje, zda transacted accept volání metody naslouchací proces jsou asynchronní.

BindingName

Získá název vazby použité ke konfiguraci služby.

ChannelInitializers

Získá sadu IChannelInitializer objektů, které můžete použít ke kontrole a přidání stavu do kanálů při jejich prvním vytvoření.

DefaultCloseTimeout

Získá výchozí časový interval povolený pro kanál dispečer zavřít.

DefaultOpenTimeout

Získá výchozí časový interval povolený pro kanál dispečer otevřít.

Endpoints

Získá dispečery koncových bodů, které přeposílají zprávy koncovým bodům kanálu.

ErrorHandlers

Získá sadu IErrorHandler objektů, které lze použít k vložení vlastní funkce zpracování chyb pro koncový bod.

Host

Získá hostitele pro službu přidruženou dispečer.

Host

Při přepsání v odvozené třídě získá hostitele služby přidruženého k dispečer kanálu.

(Zděděno od ChannelDispatcherBase)
IncludeExceptionDetailInFaults

Získá nebo nastaví hodnotu, která označuje, zda zahrnout podrobnosti o výjimce v chybě.

IsDisposed

Získá hodnotu, která označuje, zda komunikační objekt byl odstraněn.

(Zděděno od CommunicationObject)
IsTransactedAccept

Získá hodnotu, která označuje, zda se volání metody accept v naslouchacím procesu provádí v rámci transakce.

IsTransactedReceive

Získá hodnotu, která označuje, zda metody příjmu volání na naslouchací proces jsou provedeny v rámci transakce.

Listener

Získá naslouchací proces přidružený k dispečer kanálu.

ManualAddressing

Získá nebo nastaví hodnotu, která označuje, zda dispečer kanálu přidá hlavičky adresování zprávy požadavek-odpověď.

MaxPendingReceives

Získá nebo nastaví maximální počet čekajících zpráv na kanál.

MaxTransactedBatchSize

Získá nebo nastaví maximální velikost pro transakční dávku.

MessageVersion

Získá nebo nastaví soap zprávy a WS-Addressing verze, které jsou použity nebo očekává.

ReceiveContextEnabled

Získá nebo nastaví, zda ReceiveContext je povolena.

ReceiveSynchronously

Získá nebo nastaví hodnotu, která určuje, zda dispečer používá synchronní volání ke čtení zpráv z kanálů.

SendAsynchronously

Získá nebo nastaví, zda zprávy jsou odesílány asynchronně.

ServiceThrottle

Získá nebo nastaví omezení služby pro službu přidruženou k dispečer kanálu.

State

Získá hodnotu, která označuje aktuální stav komunikačního objektu.

(Zděděno od CommunicationObject)
ThisLock

Získá vzájemně se vylučující zámek, který chrání instanci třídy během přechodu stavu.

(Zděděno od CommunicationObject)
TransactionIsolationLevel

Získá nebo nastaví výchozí úroveň izolace pro transakce.

TransactionTimeout

Získá nebo nastaví hodnotu, která určuje výchozí časový limit pro nové transakce vytvořené dispečer jménem služby.

Metody

Abort()

Způsobí, že komunikační objekt okamžitě přejde z aktuálního stavu do uzavírací.

(Zděděno od CommunicationObject)
Attach(ServiceHostBase)

Připojí dispečer kanálu k hostiteli.

Attach(ServiceHostBase)

Při přepsání v odvozené třídě připojí dispečer kanálu ke konkrétnímu hostiteli.

(Zděděno od ChannelDispatcherBase)
BeginClose(AsyncCallback, Object)

Zahájí asynchronní operaci k zavření komunikačního objektu.

(Zděděno od CommunicationObject)
BeginClose(TimeSpan, AsyncCallback, Object)

Zahájí asynchronní operaci uzavření komunikačního objektu se zadaným časovým limitem.

(Zděděno od CommunicationObject)
BeginOpen(AsyncCallback, Object)

Zahájí asynchronní operaci otevření komunikačního objektu.

(Zděděno od CommunicationObject)
BeginOpen(TimeSpan, AsyncCallback, Object)

Zahájí asynchronní operaci, která otevře komunikační objekt v zadaném časovém intervalu.

(Zděděno od CommunicationObject)
Close()

Způsobí přechod komunikačního objektu z aktuálního stavu do uzavřeného stavu.

(Zděděno od CommunicationObject)
Close(TimeSpan)

Způsobí přechod komunikačního objektu z aktuálního stavu do uzavřeného stavu v zadaném časovém intervalu.

(Zděděno od CommunicationObject)
CloseInput()

Zastaví naslouchací proces v přijímání nových kanálů.

Detach(ServiceHostBase)

Oddělí hostitele služby od dispečera kanálu.

Detach(ServiceHostBase)

Při přepsání v odvozené třídě oddělí dispečer kanálu od konkrétního hostitele.

(Zděděno od ChannelDispatcherBase)
EndClose(IAsyncResult)

Dokončí asynchronní operaci pro zavření komunikačního objektu.

(Zděděno od CommunicationObject)
EndOpen(IAsyncResult)

Dokončí asynchronní operaci pro otevření komunikačního objektu.

(Zděděno od CommunicationObject)
Equals(Object)

Určí, zda se zadaný objekt rovná aktuálnímu objektu.

(Zděděno od Object)
Fault()

Způsobí přechod komunikačního objektu z aktuálního stavu do stavu selhání.

(Zděděno od CommunicationObject)
GetCommunicationObjectType()

Získá typ komunikačního objektu.

(Zděděno od CommunicationObject)
GetHashCode()

Slouží jako výchozí hashovací funkce.

(Zděděno od Object)
GetType()

Type Získá z aktuální instance.

(Zděděno od Object)
MemberwiseClone()

Vytvoří mělkou kopii aktuálního Objectsouboru .

(Zděděno od Object)
OnAbort()

Přeruší naslouchací proces přidružený k dispečeru.

OnBeginClose(TimeSpan, AsyncCallback, Object)

Zahájí asynchronní operaci zavření naslouchacího procesu kanálu dispečera, který musí být dokončen v zadaném časovém intervalu.

OnBeginOpen(TimeSpan, AsyncCallback, Object)

Zahájí asynchronní operaci, která otevře naslouchací proces kanálu pro dispečera, který musí být dokončen v zadaném časovém intervalu.

OnClose(TimeSpan)

Zavře naslouchací proces kanálu přidružený k dispečeru v zadaném časovém intervalu.

OnCloseAsync(TimeSpan)

Komponenta, která přijímá kanály a přidružuje je ke službě.

OnCloseAsync(TimeSpan)

Komponenta, která přijímá kanály a přidružuje je ke službě.

(Zděděno od CommunicationObject)
OnClosed()

Poskytuje trasování uzavření dispečerů koncových bodů přidružených k dispečer kanálu.

OnClosing()

Vyvoláno během přechodu komunikačního objektu do uzavíraného stavu.

(Zděděno od CommunicationObject)
OnEndClose(IAsyncResult)

Dokončí asynchronní operaci pro zavření naslouchacího procesu kanálu pro dispečera.

OnEndOpen(IAsyncResult)

Dokončí asynchronní operaci, která otevře naslouchací proces kanálu pro dispečera.

OnFaulted()

Vloží zpracování komunikačního objektu poté, co přejde do chybného stavu v důsledku vyvolání synchronní operace selhání.

(Zděděno od CommunicationObject)
OnOpen(TimeSpan)

Otevře naslouchací proces přidružený k dispečeru kanálu.

OnOpenAsync(TimeSpan)

Komponenta, která přijímá kanály a přidružuje je ke službě.

OnOpenAsync(TimeSpan)

Komponenta, která přijímá kanály a přidružuje je ke službě.

(Zděděno od CommunicationObject)
OnOpened()

Naplní a ověří tabulku filtru použitou k odeslání do koncových bodů.

OnOpening()

Zkontroluje, jestli je dispečer kanálu připojený k hostiteli.

Open()

Způsobí přechod komunikačního objektu ze stavu vytvoření do otevřeného stavu.

(Zděděno od CommunicationObject)
Open(TimeSpan)

Způsobí přechod komunikačního objektu z vytvořeného stavu do otevřeného stavu v zadaném časovém intervalu.

(Zděděno od CommunicationObject)
ThrowIfDisposed()

Vyvolá výjimku, pokud je komunikační objekt odstraněn.

(Zděděno od CommunicationObject)
ThrowIfDisposedOrImmutable()

Vyvolá výjimku, pokud komunikační objekt State vlastnost není nastavena Created na stav.

(Zděděno od CommunicationObject)
ThrowIfDisposedOrNotOpen()

Vyvolá výjimku, pokud komunikační objekt není ve Opened stavu .

(Zděděno od CommunicationObject)
ToString()

Vrátí řetězec, který představuje aktuální objekt.

(Zděděno od Object)

Událost

Closed

Vyvolá se při přechodu komunikačního objektu do uzavřeného stavu.

(Zděděno od CommunicationObject)
Closing

Nastane, když komunikační objekt přejde do uzavírací stav.

(Zděděno od CommunicationObject)
Faulted

Vyvolá se při přechodu komunikačního objektu do chybného stavu.

(Zděděno od CommunicationObject)
Opened

Vyvolá se při přechodu komunikačního objektu do otevřeného stavu.

(Zděděno od CommunicationObject)
Opening

Nastane, když komunikační objekt přejde do stavu otevření.

(Zděděno od CommunicationObject)

Explicitní implementace rozhraní

IAsyncCommunicationObject.CloseAsync(TimeSpan)

Komponenta, která přijímá kanály a přidružuje je ke službě.

(Zděděno od CommunicationObject)
IAsyncCommunicationObject.OpenAsync(TimeSpan)

Komponenta, která přijímá kanály a přidružuje je ke službě.

(Zděděno od CommunicationObject)

Metody rozšíření

CloseHelperAsync(ICommunicationObject, TimeSpan)

Komponenta, která přijímá kanály a přidružuje je ke službě.

OpenHelperAsync(ICommunicationObject, TimeSpan)

Komponenta, která přijímá kanály a přidružuje je ke službě.

GetInternalCloseTimeout(CommunicationObject)

Komponenta, která přijímá kanály a přidružuje je ke službě.

Platí pro