/// <summary> /// Создать сервис на Pipe /// </summary> /// <param name="singleton">Синглтон хэндлера</param> /// <param name="pipeName">Имя пайпа</param> /// <returns>Созданный сервер</returns> public static PerfCountersNetServer CreateOnPipe(INetworkCountersAPI singleton, string pipeName = "NetCountersService") { Uri baseAddr = new Uri(string.Format("net.pipe://localhost/{0}", pipeName)); ServiceHost host = new ServiceHost(singleton, baseAddr); var binding = new NetNamedPipeBinding(NetNamedPipeSecurityMode.None); host.AddServiceEndpoint(typeof(INetworkCountersAPI), binding, baseAddr); var behavior = host.Description.Behaviors.Find <ServiceBehaviorAttribute>(); behavior.InstanceContextMode = InstanceContextMode.Single; var debugBehavior = host.Description.Behaviors.Find <System.ServiceModel.Description.ServiceDebugBehavior>(); if (debugBehavior != null) { debugBehavior.IncludeExceptionDetailInFaults = true; } return(new PerfCountersNetServer(host)); }
/// <summary> /// Создать сервис на основе конифга в app.config /// </summary> /// <param name="singleton">Синглтон хэндлера</param> /// <returns>Созданный сервер</returns> public static PerfCountersNetServer Create(INetworkCountersAPI singleton) { ServiceHost host = new ServiceHost(singleton); return(new PerfCountersNetServer(host)); }