Provides a host for services.
Public Class ServiceHost _ Inherits ServiceHostBase
Dim instance As ServiceHost
public class ServiceHost : ServiceHostBase
public ref class ServiceHost : public ServiceHostBase
public class ServiceHost extends ServiceHostBase
Implements the host used by the Windows Communication Foundation (WCF) service model programming model.
Use the ServiceHost class to configure and expose a service for use by client applications when you are not using Internet Information Services (IIS) or Windows Activation Services (WAS) to expose a service. Both IIS and WAS interact with a ServiceHost object on your behalf.
To expose a service for use by callers, WCF requires a complete service description (represented by the ServiceDescription class). The ServiceHost class creates a ServiceDescription from the service type and configuration information and then uses that description to create ChannelDispatcher objects for each endpoint in the description.
Use a ServiceHost object to load a service, configure endpoints, apply security settings, and start listeners to handle incoming requests.
' 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
// Host the service within this EXE console application. public static void Main() { // Create a ServiceHost for the CalculatorService type and use // the base address from config. ServiceHost hostDefault = new ServiceHost(typeof(CalculatorService)); TimeSpan closeTimeout = hostDefault.CloseTimeout; TimeSpan openTimeout = hostDefault.OpenTimeout; ServiceAuthorizationBehavior authorization = hostDefault.Authorization; ServiceCredentials credentials = hostDefault.Credentials; ServiceDescription description = hostDefault.Description; int manualFlowControlLimit = hostDefault.ManualFlowControlLimit; NetTcpBinding portsharingBinding = new NetTcpBinding(); hostDefault.AddServiceEndpoint( typeof( CalculatorService ), portsharingBinding, "net.tcp://localhost/MyService" ); int newLimit = hostDefault.IncrementManualFlowControlLimit(100); 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 7, Windows Vista, Windows XP SP2, Windows Server 2008 R2, Windows Server 2008, Windows Server 2003