public async Task RunAsync(int port, int threadCount) { var lifetime = new ApplicationLifetime(NullLoggerFactory.Instance.CreateLogger <ApplicationLifetime>()); Console.CancelKeyPress += (sender, e) => lifetime.StopApplication(); var libuvOptions = new LibuvTransportOptions { ThreadCount = threadCount }; var libuvTransport = new LibuvTransportFactory( Options.Create(libuvOptions), lifetime, NullLoggerFactory.Instance); var binding = new IPEndPointInformation(new System.Net.IPEndPoint(System.Net.IPAddress.Any, port)); var transport = libuvTransport.Create(binding, this); await transport.BindAsync(); Console.WriteLine($"Server (raw with headers) listening on http://*:{port} with {libuvOptions.ThreadCount} thread(s)"); lifetime.ApplicationStopping.WaitHandle.WaitOne(); await transport.UnbindAsync(); await transport.StopAsync(); }
public async Task RunAsync(int port, int threadCount) { var lifetime = new ApplicationLifetime(NullLoggerFactory.Instance.CreateLogger <ApplicationLifetime>()); Console.CancelKeyPress += (sender, e) => lifetime.StopApplication(); var libuvOptions = new LibuvTransportOptions { ThreadCount = threadCount }; var libuvTransport = new LibuvTransportFactory( Options.Create(libuvOptions), lifetime, NullLoggerFactory.Instance); var serverOptions = new KestrelServerOptions(); serverOptions.Listen(IPAddress.Any, port); var server = new KestrelServer(Options.Create(serverOptions), libuvTransport, NullLoggerFactory.Instance); await server.StartAsync(this, CancellationToken.None); Console.WriteLine($"Server listening on http://*:{port} with {libuvOptions.ThreadCount} thread(s)"); lifetime.ApplicationStopping.WaitHandle.WaitOne(); await server.StopAsync(CancellationToken.None); }
public KestrelOwinServer(KestrelServerOptions options) { if (options == null) { throw new ArgumentNullException(nameof(options)); } var wrappedOptions = Options.Create(options); var loggerFactory = new LoggerFactory(); loggerFactory.AddProvider(new ConsoleLogProvider()); var transport = new LibuvTransportFactory( Options.Create(new LibuvTransportOptions()), new ApplicationLifetime(loggerFactory.CreateLogger <ApplicationLifetime>()), loggerFactory); Server = new KestrelServer(wrappedOptions, transport, loggerFactory); }