ServiceHostBase Klass

Definition

Utökar ServiceHostBase klassen för att implementera värdar som exponerar anpassade programmeringsmodeller.

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)
Arv
ServiceHostBase
Härledda
Implementeringar

Exempel

Det här exemplet använder ServiceHost klassen, som härleds från 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

Kommentarer

ServiceHostBase Använd klassen för att skapa värdar som tillhandahåller en anpassad programmeringsmodell. Tjänstprogrammeringsmodellen Windows Communication Foundation (WCF) använder klassen ServiceHost.

Särskild anmärkning för hanterade C++-användare som härleds från den här klassen:

  • Placera din rensningskod i (På)(Begin)Close (och/eller OnAbort), inte i en destruktor.
  • Undvik destructors; de gör att kompilatorn automatiskt genererar IDisposable.
  • Undvik icke-referensmedlemmar; de kan göra så att kompilatorn automatiskt genererar IDisposable.
  • Undvik finalizers; men om du inkluderar en bör du ignorera byggvarningen och anropet SuppressFinalize(Object) och själva slutföraren från (På)(Begin)Close (och/eller OnAbort) för att emulera vad som skulle ha varit det automatiskt genererade beteendet IDisposable .

Konstruktorer

Name Description
ServiceHostBase()

Initierar en ny instans av ServiceHostBase klassen.

Egenskaper

Name Description
Authentication

Hämtar beteendet för tjänstautentisering.

Authorization

Hämtar auktoriseringsbeteendet för den värdbaserade tjänsten.

BaseAddresses

Hämtar de basadresser som används av den värdbaserade tjänsten.

ChannelDispatchers

Hämtar samlingen med kanalutskick som används av tjänstvärden.

CloseTimeout

Hämtar eller anger det tidsintervall som tillåts för tjänstvärden att stängas.

Credentials

Hämtar autentiseringsuppgifterna för tjänsten som värdhanteras.

DefaultCloseTimeout

Hämtar standardintervallet för den tid som tillåts för tjänstvärden att stängas.

DefaultOpenTimeout

Hämtar det standardtidsintervall som tillåts för tjänstvärden att öppna.

Description

Hämtar beskrivningen av den värdbaserade tjänsten.

Extensions

Hämtar tilläggen för den aktuella angivna tjänstvärden.

ImplementedContracts

Hämtar kontrakten som implementeras av den värdbaserade tjänsten.

IsDisposed

Hämtar ett värde som anger om kommunikationsobjektet har tagits bort.

(Ärvd från CommunicationObject)
ManualFlowControlLimit

Hämtar eller anger flödeskontrollgränsen för meddelanden som tas emot av den värdbaserade tjänsten.

OpenTimeout

Hämtar eller anger det tidsintervall som tillåts för tjänstvärden att öppna.

State

Hämtar ett värde som anger det aktuella tillståndet för kommunikationsobjektet.

(Ärvd från CommunicationObject)
ThisLock

Hämtar det ömsesidigt uteslutande låset som skyddar klassinstansen under en tillståndsövergång.

(Ärvd från CommunicationObject)

Metoder

Name Description
Abort()

Gör att ett kommunikationsobjekt omedelbart övergår från dess aktuella tillstånd till det avslutande tillståndet.

(Ärvd från CommunicationObject)
AddBaseAddress(Uri)

Lägger till en basadress till tjänstvärden.

AddDefaultEndpoints()

Lägger till tjänstslutpunkter för alla basadresser i varje kontrakt som finns i tjänstvärden med standardbindningen.

AddServiceEndpoint(ServiceEndpoint)

Lägger till den angivna tjänstslutpunkten i den värdbaserade tjänsten.

AddServiceEndpoint(String, Binding, String, Uri)

Lägger till en tjänstslutpunkt till den värdbaserade tjänsten med ett angivet kontrakt, bindning, slutpunktsadress och URI som innehåller adressen som den lyssnar på.

AddServiceEndpoint(String, Binding, String)

Lägger till en tjänstslutpunkt i den värdbaserade tjänsten med ett angivet kontrakt, bindning och slutpunktsadress.

AddServiceEndpoint(String, Binding, Uri, Uri)

Lägger till en tjänstslutpunkt i den värdbaserade tjänsten med det angivna kontraktet, bindningen och URI:erna som innehåller slutpunkten och lyssnaradresserna.

AddServiceEndpoint(String, Binding, Uri)

Lägger till en tjänstslutpunkt i den värdbaserade tjänsten med ett angivet kontrakt, bindning och en URI som innehåller slutpunktsadressen.

ApplyConfiguration()

Läser in tjänstbeskrivningsinformationen från konfigurationsfilen och tillämpar den på den körning som skapas.

BeginClose(AsyncCallback, Object)

Påbörjar en asynkron åtgärd för att stänga ett kommunikationsobjekt.

(Ärvd från CommunicationObject)
BeginClose(TimeSpan, AsyncCallback, Object)

Påbörjar en asynkron åtgärd för att stänga ett kommunikationsobjekt med en angiven tidsgräns.

(Ärvd från CommunicationObject)
BeginOpen(AsyncCallback, Object)

Påbörjar en asynkron åtgärd för att öppna ett kommunikationsobjekt.

(Ärvd från CommunicationObject)
BeginOpen(TimeSpan, AsyncCallback, Object)

Påbörjar en asynkron åtgärd för att öppna ett kommunikationsobjekt inom ett angivet tidsintervall.

(Ärvd från CommunicationObject)
Close()

Gör att ett kommunikationsobjekt övergår från dess aktuella tillstånd till det stängda tillståndet.

(Ärvd från CommunicationObject)
Close(TimeSpan)

Gör att ett kommunikationsobjekt övergår från dess aktuella tillstånd till det stängda tillståndet inom ett angivet tidsintervall.

(Ärvd från CommunicationObject)
CreateDescription(IDictionary<String,ContractDescription>)

När den implementeras i en härledd klass skapar du beskrivningen av den värdbaserade tjänsten.

EndClose(IAsyncResult)

Slutför en asynkron åtgärd för att stänga ett kommunikationsobjekt.

(Ärvd från CommunicationObject)
EndOpen(IAsyncResult)

Slutför en asynkron åtgärd för att öppna ett kommunikationsobjekt.

(Ärvd från CommunicationObject)
Equals(Object)

Avgör om det angivna objektet är lika med det aktuella objektet.

(Ärvd från Object)
Fault()

Gör att ett kommunikationsobjekt övergår från dess aktuella tillstånd till det felaktiga tillståndet.

(Ärvd från CommunicationObject)
GetCommunicationObjectType()

Hämtar typen av kommunikationsobjekt.

(Ärvd från CommunicationObject)
GetHashCode()

Fungerar som standard-hash-funktion.

(Ärvd från Object)
GetType()

Hämtar den aktuella instansen Type .

(Ärvd från Object)
IncrementManualFlowControlLimit(Int32)

Ökar gränsen för flödeshastigheten för meddelanden till den värdbaserade tjänsten med en angiven ökning.

InitializeDescription(UriSchemeKeyedCollection)

Skapar och initierar tjänstvärden med kontrakt- och tjänstbeskrivningarna.

InitializeRuntime()

Initierar körningen för tjänstvärden.

LoadConfigurationSection(ServiceElement)

Läser in tjänstelementet från konfigurationsfilen för den värdbaserade tjänsten.

MemberwiseClone()

Skapar en ytlig kopia av den aktuella Object.

(Ärvd från Object)
OnAbort()

Avbryter tjänsten.

OnBeginClose(TimeSpan, AsyncCallback, Object)

Påbörjar en asynkron åtgärd som anropas vid slutet av tjänstvärden.

OnBeginOpen(TimeSpan, AsyncCallback, Object)

Påbörjar en asynkron åtgärd som anropas vid öppnandet av tjänstvärden.

OnClose(TimeSpan)

Stänger den värdbaserade tjänsten, inklusive deras kanalutskickare och associerade instanskontexter och lyssnare.

OnClosed()

Frigör resurser som används av tjänstvärden.

OnClosed()

Anropas under övergången av ett kommunikationsobjekt till stängningstillståndet.

(Ärvd från CommunicationObject)
OnClosing()

Anropas under övergången av ett kommunikationsobjekt till stängningstillståndet.

(Ärvd från CommunicationObject)
OnEndClose(IAsyncResult)

Slutför en asynkron åtgärd som anropas vid stängningen av tjänstvärden.

OnEndOpen(IAsyncResult)

Slutför en asynkron åtgärd som anropas vid öppnandet av tjänstvärden.

OnFaulted()

Infogar bearbetning av ett kommunikationsobjekt när det övergår till feltillståndet på grund av att en synkron felåtgärd har anropats.

(Ärvd från CommunicationObject)
OnOpen(TimeSpan)

Öppnar kanalutskickarna.

OnOpened()

Hämtar tjänstens autentiseringsuppgifter, tjänstautentisering och auktoriseringsbeteende för den värdbaserade tjänsten.

OnOpening()

Anropas under övergången av ett kommunikationsobjekt till öppningstillståndet.

(Ärvd från CommunicationObject)
Open()

Gör att ett kommunikationsobjekt övergår från det skapade tillståndet till det öppnade tillståndet.

(Ärvd från CommunicationObject)
Open(TimeSpan)

Gör att ett kommunikationsobjekt övergår från det skapade tillståndet till det öppna tillståndet inom ett angivet tidsintervall.

(Ärvd från CommunicationObject)
ReleasePerformanceCounters()

Släpper prestandaräknare för tjänst- och kanalutskick för den värdbaserade tjänsten.

SetEndpointAddress(ServiceEndpoint, String)

Anger slutpunktsadressen för den angivna slutpunkten till den angivna adressen.

ThrowIfDisposed()

Utlöser ett undantag om kommunikationsobjektet tas bort.

(Ärvd från CommunicationObject)
ThrowIfDisposedOrImmutable()

Utlöser ett undantag om kommunikationsobjektet State som egenskapen inte är inställd på tillståndet Created .

(Ärvd från CommunicationObject)
ThrowIfDisposedOrNotOpen()

Utlöser ett undantag om kommunikationsobjektet inte är i tillståndet Opened .

(Ärvd från CommunicationObject)
ToString()

Returnerar en sträng som representerar det aktuella objektet.

(Ärvd från Object)

Händelser

Name Description
Closed

Inträffar när ett kommunikationsobjekt övergår till stängt tillstånd.

(Ärvd från CommunicationObject)
Closing

Inträffar när ett kommunikationsobjekt övergår till det avslutande tillståndet.

(Ärvd från CommunicationObject)
Faulted

Inträffar när ett kommunikationsobjekt övergår till feltillståndet.

(Ärvd från CommunicationObject)
Opened

Inträffar när ett kommunikationsobjekt övergår till öppet tillstånd.

(Ärvd från CommunicationObject)
Opening

Inträffar när ett kommunikationsobjekt övergår till öppningstillståndet.

(Ärvd från CommunicationObject)
UnknownMessageReceived

Inträffar när ett okänt meddelande tas emot.

Explicita gränssnittsimplementeringar

Name Description
IDisposable.Dispose()

Stänger tjänstvärden.

Gäller för