public void Start() { try { try { Task.Run(() => _host.Open()).Wait(); Task.Run(() => _webAppHost.Open()).Wait(); } catch (AggregateException ex) { throw ex.InnerExceptions.FirstOrDefault() ?? ex; } Task.Run(() => SessionManager.GarbageCollectorAsync(_gcCancellation.Token)); StatusMonitor?.SetOnline(); Log?.AddMessage("Service successfully started at {0}", ServiceUri); } catch (Exception ex) { Log?.AddMessage("Failed to start: {0}", ex); StatusMonitor?.SetError(ex.Message); } }