ServiceHostBase Klass
Definition
Viktigt
En del information gäller för förhandsversionen av en produkt och kan komma att ändras avsevärt innan produkten blir allmänt tillgänglig. Microsoft lämnar inga garantier, uttryckliga eller underförstådda, avseende informationen som visas här.
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
- 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. |