ServiceHostBase Klasse

Definition

Erweitert die ServiceHostBase-Klasse, um Hosts zu implementieren, die benutzerdefinierte Programmiermodelle verfügbar machen.

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)
Vererbung
ServiceHostBase
Abgeleitet
Implementiert

Beispiele

In diesem Beispiel wird die ServiceHost -Klasse verwendet, die von ServiceHostBaseabgeleitet wird.

// 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

Hinweise

Verwenden Sie die ServiceHostBase -Klasse, um Hosts zu erstellen, die ein benutzerdefiniertes Programmiermodell bereitstellen. Das Windows Communication Foundation (WCF)-Dienstprogrammmodell verwendet die ServiceHost -Klasse.

Spezieller Hinweis für Benutzer von Managed C++, die von dieser Klasse ableiten:

  • Fügen Sie den Bereinigungscode in (On)(Begin)Close (and/or OnAbort) ein, nicht in einen Destruktor.

  • Vermeiden Sie Destruktoren: Sie bewirken, dass der Compiler IDisposable automatisch generiert.

  • Vermeiden Sie Member ohne Verweis: Sie können bewirken, dass der Compiler IDisposable automatisch generiert.

  • Vermeiden Sie Finalizer. Wenn Sie dennoch einen Finalizer verwenden, sollten Sie die Buildwarnung unterdrücken und SuppressFinalize(Object) sowie den Finalizer über (On)(Begin)Close (and/or OnAbort) aufrufen, um das ansonsten automatisch generierte IDisposable-Verhalten zu emulieren.

Konstruktoren

ServiceHostBase()

Initialisiert eine neue Instanz der ServiceHostBase-Klasse.

Eigenschaften

Authentication

Ruft das Dienstauthentifizierungsverhalten ab.

Authorization

Ruft das Autorisierungsverhalten für den gehosteten Dienst ab.

BaseAddresses

Ruft die vom gehosteten Dienst verwendeten Basisadressen ab.

ChannelDispatchers

Ruft die Auflistung der vom Diensthost verwendeten Kanalverteiler ab.

CloseTimeout

Ruft das Zeitintervall ab oder legt das Zeitintervall fest, das für das Schließen des Diensthosts zulässig ist.

Credentials

Ruft die Anmeldeinformationen für den gehosteten Dienst ab.

DefaultCloseTimeout

Ruft das standardmäßige Zeitintervall ab, das für das Schließen des Diensthosts zulässig ist.

DefaultOpenTimeout

Ruft das standardmäßige Zeitintervall ab, das für das Öffnen des Diensthosts zulässig ist.

Description

Ruft die Beschreibung des gehosteten Diensts ab.

Extensions

Ruft die Erweiterungen für den aktuellen angegebenen Diensthost ab.

ImplementedContracts

Ruft die durch den gehosteten Dienst implementierten Verträge ab.

IsDisposed

Ruft einen Wert ab, mit dem angegeben wird, ob das Kommunikationsobjekt verworfen wurde.

(Geerbt von CommunicationObject)
ManualFlowControlLimit

Ruft die Datenflusskontrollengrenze für durch den gehosteten Dienst empfangenen Nachrichten ab oder legt sie fest.

OpenTimeout

Ruft das Zeitintervall ab oder legt das Zeitintervall fest, das für das Öffnen des Diensthosts zulässig ist.

State

Ruft einen Wert ab, der den aktuellen Zustand des Kommunikationsobjekts angibt.

(Geerbt von CommunicationObject)
ThisLock

Ruft die gegenseitig exklusive Sperre ab, die die Klasseninstanz während eines Zustandsübergangs schützt.

(Geerbt von CommunicationObject)

Methoden

Abort()

Bewirkt, dass ein Kommunikationsobjekt unmittelbar vom aktuellen Zustand in den Schließzustand übergeht.

(Geerbt von CommunicationObject)
AddBaseAddress(Uri)

Fügt dem Diensthost eine Basisadresse hinzu.

AddDefaultEndpoints()

Fügt Dienstendpunkte für alle Basisadressen in jedem Vertrag im Diensthost mit der Standardbindung hinzu.

AddServiceEndpoint(ServiceEndpoint)

Fügt den angegebenen Dienstendpunkt dem gehosteten Dienst hinzu.

AddServiceEndpoint(String, Binding, String)

Fügt dem gehosteten Dienst einen Dienstendpunkt mit einem angegebenen Vertrag, einer Bindung und einer Endpunktadresse hinzu.

AddServiceEndpoint(String, Binding, String, Uri)

Fügt dem gehosteten Dienst einen Dienstendpunkt mit einem angegebenen Vertrag, einer Bindung, einer Endpunktadresse und einem URI hinzu, der die Adresse enthält, die er überwacht.

AddServiceEndpoint(String, Binding, Uri)

Fügt dem gehosteten Dienst einen Dienstendpunkt mit einem angegebenen Vertrag, einer Bindung und einem URI mit der Endpunktadresse hinzu.

AddServiceEndpoint(String, Binding, Uri, Uri)

Fügt dem gehosteten Dienst einen Dienstendpunkt mit dem angegebenen Vertrag, einer Bindung und URIs mit den Endpunkt- und Überwachungsadressen hinzu.

ApplyConfiguration()

Lädt die Dienstbeschreibungsinformationen aus der Konfigurationsdatei und wendet sie auf die Laufzeit an, die erstellt wird.

BeginClose(AsyncCallback, Object)

Startet einen asynchronen Vorgang, um ein Kommunikationsobjekt zu schließen.

(Geerbt von CommunicationObject)
BeginClose(TimeSpan, AsyncCallback, Object)

Startet einen asynchronen Vorgang, um ein Kommunikationsobjekt mit einem festgelegten Timeout zu schließen.

(Geerbt von CommunicationObject)
BeginOpen(AsyncCallback, Object)

Startet einen asynchronen Vorgang, um ein Kommunikationsobjekt zu öffnen.

(Geerbt von CommunicationObject)
BeginOpen(TimeSpan, AsyncCallback, Object)

Startet einen asynchronen Vorgang, um ein Kommunikationsobjekt innerhalb eines festgelegten Zeitraums zu öffnen.

(Geerbt von CommunicationObject)
Close()

Bewirkt, dass ein Kommunikationsobjekt vom aktuellen Zustand in den geschlossenen Zustand übergeht.

(Geerbt von CommunicationObject)
Close(TimeSpan)

Bewirkt den Übergang eines Kommunikationsobjekts innerhalb eines angegebenen Zeitraums vom aktuellen Zustand in den geschlossenen Zustand.

(Geerbt von CommunicationObject)
CreateDescription(IDictionary<String,ContractDescription>)

Erstellt beim Implementieren in einer abgeleiteten Klasse die Beschreibung des gehosteten Diensts.

EndClose(IAsyncResult)

Beendet einen asynchronen Vorgang, um ein Kommunikationsobjekt zu schließen.

(Geerbt von CommunicationObject)
EndOpen(IAsyncResult)

Beendet einen asynchronen Vorgang, um ein Kommunikationsobjekt zu öffnen.

(Geerbt von CommunicationObject)
Equals(Object)

Bestimmt, ob das angegebene Objekt gleich dem aktuellen Objekt ist.

(Geerbt von Object)
Fault()

Bewirkt, dass ein Kommunikationsobjekt vom aktuellen Zustand in den Fehlerzustand übergeht.

(Geerbt von CommunicationObject)
GetCommunicationObjectType()

Ruft den Typ des Kommunikationsobjekts ab.

(Geerbt von CommunicationObject)
GetHashCode()

Fungiert als Standardhashfunktion.

(Geerbt von Object)
GetType()

Ruft den Type der aktuellen Instanz ab.

(Geerbt von Object)
IncrementManualFlowControlLimit(Int32)

Erhöht die Grenze der Datenflussrate der Nachrichten an den gehosteten Dienst um eine angegebene Schrittweite.

InitializeDescription(UriSchemeKeyedCollection)

Erstellt und initialisiert den Diensthost mit dem Vertrag und den Dienstbeschreibungen.

InitializeRuntime()

Initialisiert die Laufzeit für den Diensthost.

LoadConfigurationSection(ServiceElement)

Lädt das Dienstelement aus der Konfigurationsdatei des gehosteten Diensts.

MemberwiseClone()

Erstellt eine flache Kopie des aktuellen Object.

(Geerbt von Object)
OnAbort()

Bricht den Dienst ab.

OnBeginClose(TimeSpan, AsyncCallback, Object)

Startet einen durch das Schließen des Diensthosts aufgerufenen asynchronen Vorgang.

OnBeginOpen(TimeSpan, AsyncCallback, Object)

Startet einen durch das Öffnen des Diensthosts aufgerufenen asynchronen Vorgang.

OnClose(TimeSpan)

Schließt den gehosteten Dienst, einschließlich Kanalverteiler und zugeordneter Instanzkontexte und Listener.

OnClosed()

Gibt die vom Diensthost verwendeten Ressourcen frei.

OnClosed()

Wird während des Übergangs eines Kommunikationsobjekts in den Schließzustand aufgerufen.

(Geerbt von CommunicationObject)
OnClosing()

Wird während des Übergangs eines Kommunikationsobjekts in den Schließzustand aufgerufen.

(Geerbt von CommunicationObject)
OnEndClose(IAsyncResult)

Schließt einen durch das Schließen des Diensthosts aufgerufenen asynchronen Vorgang ab.

OnEndOpen(IAsyncResult)

Schließt einen durch das Öffnen des Diensthosts aufgerufenen asynchronen Vorgang ab.

OnFaulted()

Fügt Verarbeitung auf einem Kommunikationsobjekt ein, nachdem aufgrund des Aufrufs eines synchronen Fehlervorgangs der Übergang zum Fehlerzustand stattgefunden hat.

(Geerbt von CommunicationObject)
OnOpen(TimeSpan)

Öffnet die Kanalverteiler.

OnOpened()

Ruft die Dienstanmeldeinformationen, die Dienstauthentifizierung und das Autorisierungsverhalten für den gehosteten Dienst ab.

OnOpening()

Wird während des Übergangs eines Kommunikationsobjekts in den Öffnungszustand aufgerufen.

(Geerbt von CommunicationObject)
Open()

Bewirkt den Übergang eines Kommunikationsobjekts aus dem Erstellt-Zustand in den Geöffnet-Zustand.

(Geerbt von CommunicationObject)
Open(TimeSpan)

Bewirkt den Übergang eines Kommunikationsobjekts innerhalb eines angegebenen Zeitraums vom Erstellt-Zustand in den Geöffnet-Zustand.

(Geerbt von CommunicationObject)
ReleasePerformanceCounters()

Gibt die Leistungsindikatoren für den Dienst und die Kanalverteiler für den gehosteten Dienst frei.

SetEndpointAddress(ServiceEndpoint, String)

Legt die Endpunktadresse des angegebenen Endpunkts auf die angegebene Adresse fest.

ThrowIfDisposed()

Löst eine Ausnahme aus, wenn das Kommunikationsobjekt verworfen wird.

(Geerbt von CommunicationObject)
ThrowIfDisposedOrImmutable()

Löst eine Ausnahme aus, wenn das Kommunikationsobjekt der State-Eigenschaft nicht auf den Created-Zustand festgelegt wurde.

(Geerbt von CommunicationObject)
ThrowIfDisposedOrNotOpen()

Löst eine Ausnahme aus, wenn sich das Kommunikationsobjekt nicht im Opened-Zustand befindet.

(Geerbt von CommunicationObject)
ToString()

Gibt eine Zeichenfolge zurück, die das aktuelle Objekt darstellt.

(Geerbt von Object)

Ereignisse

Closed

Tritt ein, sobald ein Kommunikationsobjekt in den geschlossenen Zustand übergeht.

(Geerbt von CommunicationObject)
Closing

Tritt ein, sobald ein Kommunikationsobjekt in den Schließzustand übergeht.

(Geerbt von CommunicationObject)
Faulted

Tritt ein, sobald ein Kommunikationsobjekt in den Fehlerzustand übergeht.

(Geerbt von CommunicationObject)
Opened

Tritt ein, sobald ein Kommunikationsobjekt in den Geöffnet-Zustand übergeht.

(Geerbt von CommunicationObject)
Opening

Tritt ein, sobald ein Kommunikationsobjekt in den Öffnungszustand übergeht.

(Geerbt von CommunicationObject)
UnknownMessageReceived

Tritt ein, wenn eine unbekannte Nachricht empfangen wird.

Explizite Schnittstellenimplementierungen

IDisposable.Dispose()

Schließt den Diensthost.

Gilt für: