EDIT: SO seems to clip my long code / configuration example, so here is the full explanation: http://thegrenade.blogspot.com/2009/08/hosting-multiple-wcf-services-under.html
Here is an example that might help you:
class Program { static void Main() { if (Environment.UserInteractive) { ServiceManager serviceManager = new ServiceManager(); serviceManager.OpenAll(); Console.ReadKey(); serviceManager.CloseAll(); } else ServiceBase.Run(new WindowsService()); } } public class WindowsService : ServiceBase { public static string WindowsServiceName = "Windows Service Name"; public static string WindowsServiceDescription = "Windows Service Description"; public static string WindowsServiceUsername = @".\username"; public static string WindowsServicePassword = "password"; private readonly ServiceManager serviceManager = new ServiceManager(); private readonly IContainer components = new Container(); protected override void Dispose(bool disposing) { if (serviceManager != null) serviceManager.CloseAll(); if (disposing && (components != null)) components.Dispose(); base.Dispose(disposing); } public WindowsService() { ServiceName = WindowsServiceName; CanStop = true; } protected override void OnStart(string[] args) { base.OnStart(args); serviceManager.OpenAll(); } protected override void OnStop() { serviceManager.CloseAll(); base.OnStop(); } } public class ServiceManager { readonly List<ServiceHost> serviceHosts = new List<ServiceHost>(); public void OpenAll() { OpenHost<Service1>(); OpenHost<Service2>(); ... } public void CloseAll() { foreach (ServiceHost serviceHost in serviceHosts) serviceHost.Close(); } private void OpenHost<T>() { Type type = typeof(T); ServiceHost serviceHost = new ServiceHost(type); serviceHost.Open(); serviceHosts.Add(serviceHost); } }
And some configuration
source share