diff --git a/src/Microsoft.AspNet.Hosting/Program.cs b/src/Microsoft.AspNet.Hosting/Program.cs index 11718b64b5..55117e0081 100644 --- a/src/Microsoft.AspNet.Hosting/Program.cs +++ b/src/Microsoft.AspNet.Hosting/Program.cs @@ -3,12 +3,9 @@ using System; using System.IO; -using System.Threading; -using System.Threading.Tasks; using Microsoft.AspNet.Hosting.Internal; using Microsoft.Framework.ConfigurationModel; using Microsoft.Framework.DependencyInjection; -using Microsoft.Framework.Logging; using Microsoft.Framework.Runtime; namespace Microsoft.AspNet.Hosting @@ -35,33 +32,12 @@ namespace Microsoft.AspNet.Hosting config.AddCommandLine(args); var host = new WebHostBuilder(_serviceProvider, config).Build(); - var serverShutdown = host.Start(); - var loggerFactory = host.ApplicationServices.GetRequiredService(); - var appShutdownService = host.ApplicationServices.GetRequiredService(); - var shutdownHandle = new ManualResetEvent(false); - - appShutdownService.ShutdownRequested.Register(() => + using (host.Start()) { - try - { - serverShutdown.Dispose(); - } - catch (Exception ex) - { - var logger = loggerFactory.CreateLogger(); - logger.LogError("Dispose threw an exception.", ex); - } - shutdownHandle.Set(); - }); - - var ignored = Task.Run(() => - { - Console.WriteLine("Started"); - Console.ReadLine(); - appShutdownService.RequestShutdown(); - }); - - shutdownHandle.WaitOne(); + var appShutdownService = host.ApplicationServices.GetRequiredService(); + Console.CancelKeyPress += delegate { appShutdownService.RequestShutdown(); }; + appShutdownService.ShutdownRequested.WaitHandle.WaitOne(); + } } } }