Exemplo n.º 1
0
        /// <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));
        }
Exemplo n.º 2
0
        /// <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));
        }