ServiceHostBase 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í.
ServiceHostBase Rozšiřuje třídu na implementaci hostitelů, kteří zpřístupňují vlastní programovací modely.
public ref class ServiceHostBase abstract : System::ServiceModel::Channels::CommunicationObject, IDisposable, System::ServiceModel::IExtensibleObject<System::ServiceModel::ServiceHostBase ^>
public abstract class ServiceHostBase : System.ServiceModel.Channels.CommunicationObject, IDisposable, System.ServiceModel.IExtensibleObject<System.ServiceModel.ServiceHostBase>
type ServiceHostBase = class
inherit CommunicationObject
interface IExtensibleObject<ServiceHostBase>
interface IDisposable
Public MustInherit Class ServiceHostBase
Inherits CommunicationObject
Implements IDisposable, IExtensibleObject(Of ServiceHostBase)
- Dědičnost
- Odvozené
- Implementuje
Příklady
Tato ukázka používá ServiceHost třídu, která je odvozena z ServiceHostBase.
// Host the service within this EXE console application.
public static void Main()
{
using (ServiceHost serviceHost = new ServiceHost(typeof(CalculatorService)))
{
try
{
// Open the ServiceHost to start listening for messages.
serviceHost.Open();
// The service can now be accessed.
Console.WriteLine("The service is ready.");
Console.WriteLine("Press <ENTER> to terminate service.");
Console.ReadLine();
// Close the ServiceHost.
serviceHost.Close();
}
catch (TimeoutException timeProblem)
{
Console.WriteLine(timeProblem.Message);
Console.ReadLine();
}
catch (CommunicationException commProblem)
{
Console.WriteLine(commProblem.Message);
Console.ReadLine();
}
}
}
' Host the service within this EXE console application.
Public Shared Sub Main()
' Create a ServiceHost for the CalculatorService type and use the base address from config.
Using svcHost As New ServiceHost(GetType(CalculatorService))
Try
' Open the ServiceHost to start listening for messages.
svcHost.Open()
' The service can now be accessed.
Console.WriteLine("The service is ready.")
Console.WriteLine("Press <ENTER> to terminate service.")
Console.WriteLine()
Console.ReadLine()
'Close the ServiceHost.
svcHost.Close()
Catch timeout As TimeoutException
Console.WriteLine(timeout.Message)
Console.ReadLine()
Catch commException As CommunicationException
Console.WriteLine(commException.Message)
Console.ReadLine()
End Try
End Using
End Sub
Poznámky
ServiceHostBase Třída slouží k vytvoření hostitelů, kteří poskytují vlastní programovací model. Programovací model služby Windows Communication Foundation (WCF) používá třídu ServiceHost.
Zvláštní poznámka pro spravované uživatele C++, kteří pocházejí z této třídy:
- Vložte kód čištění do (On)(Begin)Close (a/nebo OnAbort), ne do destruktoru.
- Vyhněte se destruktorům; způsobí, že kompilátor automaticky vygeneruje IDisposable.
- Vyhněte se nenákazovým členům; mohou způsobit, že kompilátor automaticky vygeneruje IDisposable.
- Vyhněte se finalizačním metodám; pokud ale zahrnete jeden, měli byste potlačit upozornění sestavení a volání SuppressFinalize(Object) a finalizátor samotný z (On)(Begin)Close (a/nebo OnAbort) emulovat, co by bylo automaticky generované IDisposable chování.
Konstruktory
| Name | Description |
|---|---|
| ServiceHostBase() |
Inicializuje novou instanci ServiceHostBase třídy. |
Vlastnosti
| Name | Description |
|---|---|
| Authentication |
Získá chování ověřování služby. |
| Authorization |
Získá chování autorizace pro službu hostované. |
| BaseAddresses |
Získá základní adresy používané hostované službou. |
| ChannelDispatchers |
Získá kolekci dispečerů kanálů používaných hostitelem služby. |
| CloseTimeout |
Získá nebo nastaví časový interval povolený pro ukončení hostitele služby. |
| Credentials |
Získá přihlašovací údaje pro hostované služby. |
| DefaultCloseTimeout |
Získá výchozí interval povolený pro ukončení hostitele služby. |
| DefaultOpenTimeout |
Získá výchozí časový interval povolený pro otevření hostitele služby. |
| Description |
Získá popis hostované služby. |
| Extensions |
Získá rozšíření pro aktuálního zadaného hostitele služby. |
| ImplementedContracts |
Načte kontrakty implementované službou hostovanou službou. |
| IsDisposed |
Získá hodnotu, která označuje, zda komunikační objekt byl uvolněn. (Zděděno od CommunicationObject) |
| ManualFlowControlLimit |
Získá nebo nastaví limit řízení toku pro zprávy přijaté službou hostované. |
| OpenTimeout |
Získá nebo nastaví časový interval povolený pro otevření hostitele služby. |
| State |
Získá hodnotu, která označuje aktuální stav komunikačního objektu. (Zděděno od CommunicationObject) |
| ThisLock |
Získá vzájemně vylučující zámek, který chrání instanci třídy během přechodu stavu. (Zděděno od CommunicationObject) |
Metody
| Name | Description |
|---|---|
| Abort() |
Způsobí, že komunikační objekt přejde okamžitě z aktuálního stavu do koncového stavu. (Zděděno od CommunicationObject) |
| AddBaseAddress(Uri) |
Přidá základní adresu k hostiteli služby. |
| AddDefaultEndpoints() |
Přidá koncové body služby pro všechny základní adresy v jednotlivých kontraktech nalezených v hostiteli služby s výchozí vazbou. |
| AddServiceEndpoint(ServiceEndpoint) |
Přidá zadaný koncový bod služby do hostované služby. |
| AddServiceEndpoint(String, Binding, String, Uri) |
Přidá koncový bod služby do hostované služby se zadaným kontraktem, vazbou, adresou koncového bodu a identifikátorem URI, který obsahuje adresu, na které naslouchá. |
| AddServiceEndpoint(String, Binding, String) |
Přidá koncový bod služby do hostované služby se zadaným kontraktem, vazbou a adresou koncového bodu. |
| AddServiceEndpoint(String, Binding, Uri, Uri) |
Přidá koncový bod služby do hostované služby se zadaným kontraktem, vazbou a identifikátory URI, které obsahují koncový bod a adresy naslouchání. |
| AddServiceEndpoint(String, Binding, Uri) |
Přidá koncový bod služby do hostované služby se zadaným kontraktem, vazbou a identifikátorem URI, který obsahuje adresu koncového bodu. |
| ApplyConfiguration() |
Načte informace o popisu služby z konfiguračního souboru a použije je na vytvořený modul runtime. |
| BeginClose(AsyncCallback, Object) |
Zahájí asynchronní operaci ukončení komunikačního objektu. (Zděděno od CommunicationObject) |
| BeginClose(TimeSpan, AsyncCallback, Object) |
Zahájí asynchronní operaci ukonč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 otevření komunikačního objektu v zadaném časovém intervalu. (Zděděno od CommunicationObject) |
| Close() |
Způsobí přechod komunikačního objektu z jeho aktuálního stavu do uzavřeného stavu. (Zděděno od CommunicationObject) |
| Close(TimeSpan) |
Způsobí, že komunikační objekt přejde z aktuálního stavu do uzavřeného stavu v zadaném časovém intervalu. (Zděděno od CommunicationObject) |
| CreateDescription(IDictionary<String,ContractDescription>) |
Při implementaci v odvozené třídě vytvoří popis hostované služby. |
| 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čuje, zda je zadaný objekt roven aktuálnímu objektu. (Zděděno od Object) |
| Fault() |
Způsobí přechod komunikačního objektu z jeho aktuálního stavu do chybného stavu. (Zděděno od CommunicationObject) |
| GetCommunicationObjectType() |
Získá typ komunikačního objektu. (Zděděno od CommunicationObject) |
| GetHashCode() |
Slouží jako výchozí funkce hash. (Zděděno od Object) |
| GetType() |
Získá Type aktuální instance. (Zděděno od Object) |
| IncrementManualFlowControlLimit(Int32) |
Zvýší limit četnosti toků zpráv do hostované služby o zadaný přírůstek. |
| InitializeDescription(UriSchemeKeyedCollection) |
Vytvoří a inicializuje hostitele služby pomocí popisu kontraktu a služby. |
| InitializeRuntime() |
Inicializuje modul runtime pro hostitele služby. |
| LoadConfigurationSection(ServiceElement) |
Načte element služby z konfiguračního souboru hostované služby. |
| MemberwiseClone() |
Vytvoří mělkou kopii aktuálního Object. (Zděděno od Object) |
| OnAbort() |
Přeruší službu. |
| OnBeginClose(TimeSpan, AsyncCallback, Object) |
Zahájí asynchronní operaci vyvolanou na konci hostitele služby. |
| OnBeginOpen(TimeSpan, AsyncCallback, Object) |
Zahájí asynchronní operaci vyvolanou při otevření hostitele služby. |
| OnClose(TimeSpan) |
Zavře hostované služby, včetně jejich dispečerů kanálů a přidružených kontextů instancí a naslouchacích procesů. |
| OnClosed() |
Uvolní prostředky používané hostitelem služby. |
| OnClosed() |
Vyvoláno během přechodu komunikačního objektu do koncového stavu. (Zděděno od CommunicationObject) |
| OnClosing() |
Vyvoláno během přechodu komunikačního objektu do koncového stavu. (Zděděno od CommunicationObject) |
| OnEndClose(IAsyncResult) |
Dokončí asynchronní operaci vyvolanou při zavření hostitele služby. |
| OnEndOpen(IAsyncResult) |
Dokončí asynchronní operaci vyvolanou při otevření hostitele služby. |
| OnFaulted() |
Vloží zpracování na komunikační objekt poté, co přejde do chybného stavu kvůli vyvolání synchronní operace selhání. (Zděděno od CommunicationObject) |
| OnOpen(TimeSpan) |
Otevře dispečery kanálu. |
| OnOpened() |
Získá přihlašovací údaje služby, ověřování služby a chování autorizace hostované služby. |
| OnOpening() |
Vyvoláno při přechodu komunikačního objektu do stavu otevření. (Zděděno od CommunicationObject) |
| Open() |
Způsobí, že komunikační objekt přejde z vytvořeného stavu do otevřeného stavu. (Zděděno od CommunicationObject) |
| Open(TimeSpan) |
Způsobí, že komunikační objekt přejde z vytvořeného stavu do otevřeného stavu v zadaném časovém intervalu. (Zděděno od CommunicationObject) |
| ReleasePerformanceCounters() |
Uvolní čítače výkonu dispečera a služby kanálu pro hostované služby. |
| SetEndpointAddress(ServiceEndpoint, String) |
Nastaví adresu koncového bodu zadaného koncového bodu na zadanou adresu. |
| ThrowIfDisposed() |
Vyvolá výjimku, pokud je komunikační objekt uvolněn. (Zděděno od CommunicationObject) |
| ThrowIfDisposedOrImmutable() |
Vyvolá výjimku, pokud komunikační objekt State , který vlastnost není nastavena na Created 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
| Name | Description |
|---|---|
| Closed |
Nastane, když komunikační objekt přejde do uzavřeného stavu. (Zděděno od CommunicationObject) |
| Closing |
Nastane, když komunikační objekt přejde do koncového stavu. (Zděděno od CommunicationObject) |
| Faulted |
Nastane, když komunikační objekt přejde do chybného stavu. (Zděděno od CommunicationObject) |
| Opened |
Nastane, když komunikační objekt přejde 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) |
| UnknownMessageReceived |
Nastane při přijetí neznámé zprávy. |
Explicitní implementace rozhraní
| Name | Description |
|---|---|
| IDisposable.Dispose() |
Zavře hostitele služby. |