protected override void OnStart(string[] args) { try { Supervisor.Start(); base.OnStart(args); } catch (Exception ex) { Supervisor.LogException(ex, TraceEventType.Critical, "Service failed to start"); using (var controller = new ServiceController(this.ServiceName)) { controller.Stop(); } this.ExitCode = 1; } }
public static void Run() { Console.WriteLine("===] REVALEE [=== v{0}", GetVersionNumber()); Console.WriteLine(" {0}", GetCopyrightInformation()); Console.WriteLine(); if (!CheckInstallation()) { return; } WriteStatusMessage("Initializing..."); try { Supervisor.Start(); } catch (Exception ex) { Console.WriteLine(); Console.WriteLine("Revalee service cannot start due to the following critical error:"); Console.WriteLine("* {0}", ex.Message); Console.WriteLine(); Console.WriteLine("Press any key to terminate."); Console.ReadKey(true); throw; } try { ClearStatusMessage(); if (Supervisor.Configuration.ListenerPrefixes.Count == 0) { Console.WriteLine("Revalee service is running but is not listening for callback requests."); } else if (Supervisor.Configuration.ListenerPrefixes.Count == 1) { Console.WriteLine("Revalee service is running and listening on {0}.", Supervisor.Configuration.ListenerPrefixes[0]); } else { Console.WriteLine("Revalee service is running and listening on:"); foreach (ListenerPrefix prefix in Supervisor.Configuration.ListenerPrefixes) { Console.WriteLine(" {0}", prefix); } } Console.WriteLine("Press any key to terminate."); Console.ReadKey(true); Console.WriteLine(); } finally { WriteStatusMessage("Service stopping..."); try { Supervisor.Stop(); } catch (ThreadAbortException) { // Ignore thread abort exceptions on shutdown } catch (ObjectDisposedException) { // Ignore object disposed exceptions on shutdown } ClearStatusMessage(); Console.WriteLine(); } }