public static void Main(params string[] args) { XmlConfigurator.Configure(); ILog log = LogManager.GetLogger(typeof(Program)); new Application(new ApplicationOptions <CmdLineOptions>() { CommandLineOptionsFactory = (Func <CmdLineOptions>)(() => new CmdLineOptions("CSManagmentServer")), InitializeAction = (Action <string[]>)(a => { Program.PrepareDirectories("CSManagmentServer", log); ManagmentServer.KeyLength = Convert.ToInt32(ConfigurationManager.AppSettings["KeyLength"]); ConnectionStringsSetter.SetConnectionStrings(); Program._serviceHost = SetupUtils.SetupAndStartServiceHost <ManagmentServer>(ServiceFinder.GetAddressParts(ConfigurationManager.AppSettings["ServiceEndpointAddress"]), log); }), MainWorkerAction = (Action)(() => { ManagmentServer.StatisticThread = new Thread(new ThreadStart(ManagmentServer.SaveStatistic)) { IsBackground = true }; ManagmentServer.StatisticThread.Start(); ManagmentServer.RefreshThread = new Thread(new ThreadStart(ManagmentServer.RefreshAll)) { IsBackground = true }; ManagmentServer.RefreshThread.Start(); ManagmentServer.CheckOperatorsThread = new Thread(new ThreadStart(ManagmentServer.CheckOperators)) { IsBackground = true }; ManagmentServer.CheckOperatorsThread.Start(); }), StopAction = new Action(Program.OnStop), ServiceName = "CSManagmentServer" }, ManagmentServer.Logger).Run(args); }