ServiceHostBase Třída

Definice

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

Platí pro