private static void Main() { XmlConfigurator.Configure(); _log = LogManager.GetLogger(ServiceName); _log.InfoFormat("Starting service ..."); _appName = System.Diagnostics.Process.GetCurrentProcess().ProcessName.Replace(".vshost", string.Empty); _displayName = _appName; _parameters = ParseCommandLine(Environment.CommandLine); //определяем комманду на удаление сервиса var isNeedRemoveService = _parameters.ContainsKey(ParamServiceNo); if (isNeedRemoveService) { RemoveService(); return; } //определяем какой вид запуска (сервис или консоль) var runAsService = _parameters.ContainsKey(ParamService); //запуск приложения как сервиса if (runAsService) { // если сервиса нет - устанавливаем его и запускаем var sysService = GetInstalledService(); if (sysService == null) { sysService = CreateService(); sysService.Start(); return; } // если сервис есть - запускаем логику var svc = new SchedulerHost(new ServiceContext(_parameters)); ServiceBase.Run(svc); } //запуск в режиме консольного приложения else { var app = new SchedulerHost(new ServiceContext(_parameters)); try { app.Start(null); _log.Info("Press escape to exit"); ConsoleKeyInfo keyInfo; do keyInfo = Console.ReadKey(); while (keyInfo.Key != ConsoleKey.Escape); } catch (Exception ex) { _log.ErrorFormat("Fatal error: {0}", ex); Console.WriteLine("Press a key to exit"); Console.ReadKey(); } finally { app.Stop(); } } }
private static void Main() { XmlConfigurator.Configure(); _log = LogManager.GetLogger(ServiceName); _log.InfoFormat("Starting service ..."); _appName = System.Diagnostics.Process.GetCurrentProcess().ProcessName.Replace(".vshost", string.Empty); _displayName = _appName; _parameters = ParseCommandLine(Environment.CommandLine); //определяем комманду на удаление сервиса var isNeedRemoveService = _parameters.ContainsKey(ParamServiceNo); if (isNeedRemoveService) { RemoveService(); return; } //определяем какой вид запуска (сервис или консоль) var runAsService = _parameters.ContainsKey(ParamService); //запуск приложения как сервиса if (runAsService) { // если сервиса нет - устанавливаем его и запускаем var sysService = GetInstalledService(); if (sysService == null) { sysService = CreateService(); sysService.Start(); return; } // если сервис есть - запускаем логику var svc = new SchedulerHost(new ServiceContext(_parameters)); ServiceBase.Run(svc); } //запуск в режиме консольного приложения else { var app = new SchedulerHost(new ServiceContext(_parameters)); try { app.Start(null); _log.Info("Press escape to exit"); ConsoleKeyInfo keyInfo; do { keyInfo = Console.ReadKey(); } while (keyInfo.Key != ConsoleKey.Escape); } catch (Exception ex) { _log.ErrorFormat("Fatal error: {0}", ex); Console.WriteLine("Press a key to exit"); Console.ReadKey(); } finally { app.Stop(); } } }