ChannelDispatcher Třída
Definice
Důležité
Některé informace platí pro předběžně vydaný produkt, který se může zásadně změnit, než ho výrobce nebo autor vydá. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
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ě. |