Sdílet prostřednictvím


ServiceHostBase Třída

Definice

Rozšiřuje třídu o ServiceHostBase 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 Pomocí třídy vytvořte hostitele, kteří poskytují vlastní programovací model. Programovací model služby WCF (Windows Communication Foundation) používá ServiceHost třídu .

Zvláštní poznámka pro uživatele spravovaného jazyka C++, kteří jsou odvozeni 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ů; způsobí, že kompilátor automaticky vygeneruje IDisposable.

  • Vyhněte se ne referenčním členům; mohou způsobit, že kompilátor automaticky vygeneruje IDisposable.

  • Vyhněte se finalizátorům; Pokud ale zahrnete jeden, měli byste potlačit upozornění sestavení a volat SuppressFinalize(Object) a finalizátor samotný z (On)(Begin)Close (a/nebo OnAbort), abyste emulovali, jaké by bylo automaticky vygenerované IDisposable chování.

Konstruktory

ServiceHostBase()

Inicializuje novou instanci ServiceHostBase třídy.

Vlastnosti

Authentication

Získá chování ověřování služby.

Authorization

Získá autorizační chování hostované služby.

BaseAddresses

Získá základní adresy používané hostovanými službami.

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í časový 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é hostovanou službou.

IsDisposed

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

(Zděděno od CommunicationObject)
ManualFlowControlLimit

Získá nebo nastaví omezení ří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ě se vylučující zámek, který chrání instanci třídy během přechodu stavu.

(Zděděno od CommunicationObject)

Metody

Abort()

Způsobí okamžitý přechod komunikačního objektu z aktuálního stavu do koncového stavu.

(Zděděno od CommunicationObject)
AddBaseAddress(Uri)

Přidá k hostiteli služby základní adresu.

AddDefaultEndpoints()

Přidá koncové body služby pro všechny základní adresy v každém kontraktu, který se nachází 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)

Přidá koncový bod služby do hostované služby se zadaným kontraktem, vazbou a adresou koncového bodu.

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

AddServiceEndpoint(String, Binding, Uri, Uri)

Přidá koncový bod služby do hostované služby se zadanými kontrakty, vazbami a identifikátory URI, které obsahují koncové body a adresy naslouchání.

ApplyConfiguration()

Načte informace o popisu služby z konfiguračního souboru a použije je na konstruovaný modul runtime.

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 k 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)
CreateDescription(IDictionary<String,ContractDescription>)

Při implementaci v odvozené třídě vytvoří popis hostované služby.

EndClose(IAsyncResult)

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

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

Dokončí asynchronní operaci k 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 vadné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í hashovací funkce.

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

Získá aktuální Type instanci.

(Zděděno od Object)
IncrementManualFlowControlLimit(Int32)

Zvyšuje limit rychlosti toku zpráv do hostované služby o zadaný přírůstek.

InitializeDescription(UriSchemeKeyedCollection)

Vytvoří a inicializuje hostitele služby s popisem 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 Objectsouboru .

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

Službu přeruší.

OnBeginClose(TimeSpan, AsyncCallback, Object)

Zahájí asynchronní operaci vyvolanou při zavření hostitele služby.

OnBeginOpen(TimeSpan, AsyncCallback, Object)

Spustí 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ána během přechodu komunikačního objektu do koncového stavu.

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

Vyvolána 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í komunikačního objektu poté, co přejde do chybové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 pro hostované služby.

OnOpening()

Vyvolána během přechodu komunikačního objektu do stavu otevření.

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

Způsobí přechod komunikačního objektu z vytvořeného stavu 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)
ReleasePerformanceCounters()

Uvolní čítače výkonu služby a dispečera 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 odstraněn.

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

Vyvolá výjimku, pokud komunikační objekt State vlastnost není nastaven 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

Closed

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

(Zděděno od CommunicationObject)
Closing

Nastane při přechodu komunikačního objektu do koncového stavu.

(Zděděno od CommunicationObject)
Faulted

Nastane při přechodu komunikačního objektu do chybové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í

IDisposable.Dispose()

Zavře hostitele služby.

Platí pro