ServiceHostBase Class
Extends the ServiceHostBase class to implement hosts that expose custom programming models.
Namespace: System.ServiceModel
Assembly: System.ServiceModel (in System.ServiceModel.dll)
The ServiceHostBase type exposes the following members.
| Name | Description | |
|---|---|---|
![]() | Authentication | Gets the service authentication behavior. |
![]() | Authorization | Gets the authorization behavior for the service hosted. |
![]() | BaseAddresses | Gets the base addresses used by the hosted service. |
![]() | ChannelDispatchers | Gets the collection of channel dispatchers used by the service host. |
![]() | CloseTimeout | Gets or sets the interval of time allowed for the service host to close. |
![]() | Credentials | Gets the credential for the service hosted. |
![]() | DefaultCloseTimeout | Gets the default interval of time allowed for the service host to close. (Overrides CommunicationObject.DefaultCloseTimeout.) |
![]() | DefaultOpenTimeout | Gets the default interval of time allowed for the service host to open. (Overrides CommunicationObject.DefaultOpenTimeout.) |
![]() | Description | Gets the description of the service hosted. |
![]() | Extensions | Gets the extensions for the current specified service host. |
![]() | ImplementedContracts | Retrieves the contracts implemented by the service hosted. |
![]() | IsDisposed | Gets a value that indicates whether the communication object has been disposed. (Inherited from CommunicationObject.) |
![]() | ManualFlowControlLimit | Gets or sets the flow control limit for messages received by the service hosted. |
![]() | OpenTimeout | Gets or sets the interval of time allowed for the service host to open. |
![]() | State | Gets a value that indicates the current state of the communication object. (Inherited from CommunicationObject.) |
![]() | ThisLock | Gets the mutually exclusive lock that protects the class instance during a state transition. (Inherited from CommunicationObject.) |
| Name | Description | |
|---|---|---|
![]() | Abort | Causes a communication object to transition immediately from its current state into the closing state. (Inherited from CommunicationObject.) |
![]() | AddBaseAddress | Adds a base address to the service host. |
![]() | AddDefaultEndpoints | Adds service endpoints for all base addresses in each contract found in the service host with the default binding. |
![]() | AddServiceEndpoint(ServiceEndpoint) | Adds the specified service endpoint to the hosted service. |
![]() | AddServiceEndpoint(String, Binding, String) | Adds a service endpoint to the hosted service with a specified contract, binding, and endpoint address. |
![]() | AddServiceEndpoint(String, Binding, Uri) | Adds a service endpoint to the hosted service with a specified contract, binding, and a URI that contains the endpoint address. |
![]() | AddServiceEndpoint(String, Binding, String, Uri) | Adds a service endpoint to the hosted service with a specified contract, binding, endpoint address and URI that contains the address at which it listens. |
![]() | AddServiceEndpoint(String, Binding, Uri, Uri) | Adds a service endpoint to the hosted service with the specified contract, binding, and URIs that contain the endpoint and listening addresses. |
![]() | ApplyConfiguration | Loads the service description information from the configuration file and applies it to the runtime being constructed. |
![]() | BeginClose(AsyncCallback, Object) | Begins an asynchronous operation to close a communication object. (Inherited from CommunicationObject.) |
![]() | BeginClose(TimeSpan, AsyncCallback, Object) | Begins an asynchronous operation to close a communication object with a specified timeout. (Inherited from CommunicationObject.) |
![]() | BeginOpen(AsyncCallback, Object) | Begins an asynchronous operation to open a communication object. (Inherited from CommunicationObject.) |
![]() | BeginOpen(TimeSpan, AsyncCallback, Object) | Begins an asynchronous operation to open a communication object within a specified interval of time. (Inherited from CommunicationObject.) |
![]() | Close() | Causes a communication object to transition from its current state into the closed state. (Inherited from CommunicationObject.) |
![]() | Close(TimeSpan) | Causes a communication object to transition from its current state into the closed state within a specified interval of time. (Inherited from CommunicationObject.) |
![]() | CreateDescription | When implemented in a derived class, creates the description of the hosted service. |
![]() | EndClose | Completes an asynchronous operation to close a communication object. (Inherited from CommunicationObject.) |
![]() | EndOpen | Completes an asynchronous operation to open a communication object. (Inherited from CommunicationObject.) |
![]() | Equals(Object) | Determines whether the specified object is equal to the current object. (Inherited from Object.) |
![]() | Fault | Causes a communication object to transition from its current state into the faulted state. (Inherited from CommunicationObject.) |
![]() | Finalize | Allows an object to try to free resources and perform other cleanup operations before it is reclaimed by garbage collection. (Inherited from Object.) |
![]() | GetCommunicationObjectType | Gets the type of communication object. (Inherited from CommunicationObject.) |
![]() | GetHashCode | Serves as a hash function for a particular type. (Inherited from Object.) |
![]() | GetType | Gets the Type of the current instance. (Inherited from Object.) |
![]() | IncrementManualFlowControlLimit | Increases the limit on the flow rate of messages to the hosted service by a specified increment. |
![]() | InitializeDescription | Creates and initializes the service host with the contract and service descriptions. |
![]() | InitializeRuntime | Initializes the runtime for the service host. |
![]() | LoadConfigurationSection | Loads the service element from the configuration file of the hosted service. |
![]() | MemberwiseClone | Creates a shallow copy of the current Object. (Inherited from Object.) |
![]() | OnAbort | Aborts the service. (Overrides CommunicationObject.OnAbort().) |
![]() | OnBeginClose | Begins an asynchronous operation invoked on the close of the service host. (Overrides CommunicationObject.OnBeginClose(TimeSpan, AsyncCallback, Object).) |
![]() | OnBeginOpen | Begins an asynchronous operation invoked on the opening of the service host. (Overrides CommunicationObject.OnBeginOpen(TimeSpan, AsyncCallback, Object).) |
![]() | OnClose | Closes down the hosted service, including their channel dispatchers and associated instance contexts and listeners. (Overrides CommunicationObject.OnClose(TimeSpan).) |
![]() | OnClosed | Releases resources used by the service host. (Overrides CommunicationObject.OnClosed().) |
![]() | OnClosing | Invoked during the transition of a communication object into the closing state. (Inherited from CommunicationObject.) |
![]() | OnEndClose | Completes an asynchronous operation invoked on the closing of the service host. (Overrides CommunicationObject.OnEndClose(IAsyncResult).) |
![]() | OnEndOpen | Completes an asynchronous operation invoked on the opening of the service host. (Overrides CommunicationObject.OnEndOpen(IAsyncResult).) |
![]() | OnFaulted | Inserts processing on a communication object after it transitions to the faulted state due to the invocation of a synchronous fault operation. (Inherited from CommunicationObject.) |
![]() | OnOpen | Opens the channel dispatchers. (Overrides CommunicationObject.OnOpen(TimeSpan).) |
![]() | OnOpened | Gets the service credentials,service authentication and authorization behavior for the hosted service. (Overrides CommunicationObject.OnOpened().) |
![]() | OnOpening | Invoked during the transition of a communication object into the opening state. (Inherited from CommunicationObject.) |
![]() | Open() | Causes a communication object to transition from the created state into the opened state. (Inherited from CommunicationObject.) |
![]() | Open(TimeSpan) | Causes a communication object to transition from the created state into the opened state within a specified interval of time. (Inherited from CommunicationObject.) |
![]() | ReleasePerformanceCounters | Releases the service and channel dispatcher performance counters for the hosted service. |
![]() | SetEndpointAddress | Sets the endpoint address of the specified endpoint to the specified address. |
![]() | ThrowIfDisposed | Throws an exception if the communication object is disposed. (Inherited from CommunicationObject.) |
![]() | ThrowIfDisposedOrImmutable | Throws an exception if the communication object the State property is not set to the Created state. (Inherited from CommunicationObject.) |
![]() | ThrowIfDisposedOrNotOpen | Throws an exception if the communication object is not in the Opened state. (Inherited from CommunicationObject.) |
![]() | ToString | Returns a string that represents the current object. (Inherited from Object.) |
| Name | Description | |
|---|---|---|
![]() | Closed | Occurs when a communication object transitions into the closed state. (Inherited from CommunicationObject.) |
![]() | Closing | Occurs when a communication object transitions into the closing state. (Inherited from CommunicationObject.) |
![]() | Faulted | Occurs when a communication object transitions into the faulted state. (Inherited from CommunicationObject.) |
![]() | Opened | Occurs when a communication object transitions into the opened state. (Inherited from CommunicationObject.) |
![]() | Opening | Occurs when a communication object transitions into the opening state. (Inherited from CommunicationObject.) |
![]() | UnknownMessageReceived | Occurs when an unknown message is received. |
Use the ServiceHostBase class to create hosts that provide a custom programming model. The Windows Communication Foundation (WCF) service programming model uses the ServiceHost class.
Special note for Managed C++ users deriving from this class:
Put your cleanup code in (On)(Begin)Close (and/or OnAbort), not in a destructor.
Avoid destructors; they cause the compiler to auto-generate IDisposable.
Avoid non-reference members; they can cause the compiler to auto-generate IDisposable.
Avoid finalizers; but if you include one, you should suppress the build warning and call SuppressFinalize(Object) and the finalizer itself from (On)(Begin)Close (and/or OnAbort) to emulate what would have been the auto-generated IDisposable behavior.
This sample uses the ServiceHost class, which is derived from 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(); } } }
Windows 8, Windows Server 2012, Windows 7, Windows Vista SP2, Windows Server 2008 (Server Core Role not supported), Windows Server 2008 R2 (Server Core Role supported with SP1 or later; Itanium not supported)
The .NET Framework does not support all versions of every platform. For a list of the supported versions, see .NET Framework System Requirements.






