public static async Task Main(string[] args) { shutdown = new ManualResetEventSlim(); Console.CancelKeyPress += Console_CancelKeyPress; var options = new KestrelServerOptions(); options.ListenAnyIP(5000, c => { c.UseHttpApplication <Application>(); }); var server = new KestrelServer( Options.Create(options), new SocketTransportFactory( Options.Create(new SocketTransportOptions()), NullLoggerFactory.Instance), NullLoggerFactory.Instance); var application = new HostingApplication((context) => Task.CompletedTask, new DefaultHttpContextFactory(new ServiceProvider())); await server.StartAsync(application, CancellationToken.None); Console.WriteLine("Application started."); shutdown.Wait(); Console.WriteLine("Shutting down..."); server.Dispose(); await server.StopAsync(CancellationToken.None); }
public void Dispose() { server.Dispose(); logWriter.Flush(); logWriter.Dispose(); Console.Write(Name); Console.WriteLine("."); }
/// <summary> /// Shuts down the server /// </summary> public async Task StopAsync() { if (IsListening) { IsListening = false; _stopSource.Cancel(); var cts = new CancellationTokenSource(500); await _server.StopAsync(cts.Token); _stopSource.Dispose(); _server.Dispose(); } }
static void Main(string[] args) { var options = new KestrelServerOptions(); options.NoDelay = true; options.ThreadCount = 2; var applicationLifetime = new ApplicationLifetime(); var server = new KestrelServer(new OptionsWrapper <KestrelServerOptions>(options), applicationLifetime, new LoggerFactory()); server.Features.Get <IServerAddressesFeature>().Addresses.Add("http://localhost:8888"); server.Start(new HttpApp()); Console.WriteLine("Listening on 8888. Press Enter to stop."); Console.ReadLine(); server.Dispose(); }
public void Stop() { lock (_syncObject) { if (!IsRunning) { return; } _cts.Cancel(); _kestrelServer.Dispose(); _kestrelServer = null; IsRunning = false; } _log.Info("Http server stopped"); }
public async ValueTask DisposeAsync() { await UnbindAsync(); _server.Dispose(); }
public async ValueTask DisposeAsync() { await UnbindAsync().ConfigureAwait(false); _server.Dispose(); }