public WebHost( IServiceCollection appServices, IServiceProvider hostingServiceProvider, WebHostOptions options, IConfiguration config) { if (appServices == null) { throw new ArgumentNullException(nameof(appServices)); } if (hostingServiceProvider == null) { throw new ArgumentNullException(nameof(hostingServiceProvider)); } if (config == null) { throw new ArgumentNullException(nameof(config)); } _config = config; _options = options; _applicationServiceCollection = appServices; _hostingServiceProvider = hostingServiceProvider; _applicationLifetime = new ApplicationLifetime(); _applicationServiceCollection.AddSingleton <IApplicationLifetime>(_applicationLifetime); }
public WebHost( IServiceCollection appServices, IServiceProvider hostingServiceProvider, WebHostOptions options, IConfiguration config) { if (appServices == null) { throw new ArgumentNullException(nameof(appServices)); } if (hostingServiceProvider == null) { throw new ArgumentNullException(nameof(hostingServiceProvider)); } if (config == null) { throw new ArgumentNullException(nameof(config)); } _config = config; _options = options; _applicationServiceCollection = appServices; _hostingServiceProvider = hostingServiceProvider; _applicationLifetime = new ApplicationLifetime(); _applicationServiceCollection.AddSingleton<IApplicationLifetime>(_applicationLifetime); }
public virtual async Task StartAsync(CancellationToken cancellationToken = default) { HostingEventSource.Log.HostStart(); _logger = _applicationServices.GetRequiredService <ILogger <WebHost> >(); _logger.Starting(); var application = BuildApplication(); _applicationLifetime = _applicationServices.GetRequiredService <IApplicationLifetime>() as ApplicationLifetime; _hostedServiceExecutor = _applicationServices.GetRequiredService <HostedServiceExecutor>(); var diagnosticSource = _applicationServices.GetRequiredService <DiagnosticListener>(); var httpContextFactory = _applicationServices.GetRequiredService <IHttpContextFactory>(); IHttpApplication <HostingApplication.Context> hostingApp; hostingApp = new HostingApplication(application, _logger, diagnosticSource, httpContextFactory); await StartAsyncApp(cancellationToken, hostingApp); }
public virtual async Task StartAsync(CancellationToken cancellationToken = default) { HostingEventSource.Log.HostStart(); _logger = _applicationServices.GetRequiredService <ILoggerFactory>().CreateLogger("Microsoft.AspNetCore.Hosting.Diagnostics"); _logger.Starting(); var application = BuildApplication(); _applicationLifetime = _applicationServices.GetRequiredService <ApplicationLifetime>(); _hostedServiceExecutor = _applicationServices.GetRequiredService <HostedServiceExecutor>(); // Fire IHostedService.Start await _hostedServiceExecutor.StartAsync(cancellationToken).ConfigureAwait(false); var diagnosticSource = _applicationServices.GetRequiredService <DiagnosticListener>(); var httpContextFactory = _applicationServices.GetRequiredService <IHttpContextFactory>(); var hostingApp = new HostingApplication(application, _logger, diagnosticSource, httpContextFactory); await Server.StartAsync(hostingApp, cancellationToken).ConfigureAwait(false); _startedServer = true; // Fire IApplicationLifetime.Started _applicationLifetime?.NotifyStarted(); _logger.Started(); // Log the fact that we did load hosting startup assemblies. if (_logger.IsEnabled(LogLevel.Debug)) { foreach (var assembly in _options.GetFinalHostingStartupAssemblies()) { _logger.LogDebug("Loaded hosting startup assembly {assemblyName}", assembly); } } if (_hostingStartupErrors != null) { foreach (var exception in _hostingStartupErrors.InnerExceptions) { _logger.HostingStartupAssemblyError(exception); } } }
private static IServiceCollection GetInitialServiceCollection() { var serviceCollection = new ServiceCollection(); var diagnosticSource = new DiagnosticListener(TestFrameworkName); var applicationLifetime = new ApplicationLifetime(); // default server services serviceCollection.AddSingleton(Environment); serviceCollection.AddSingleton<IApplicationLifetime>(applicationLifetime); serviceCollection.AddSingleton<ILoggerFactory>(LoggerFactoryMock.Create()); serviceCollection.AddLogging(); serviceCollection.AddTransient<IApplicationBuilderFactory, ApplicationBuilderFactory>(); serviceCollection.AddTransient<IHttpContextFactory, HttpContextFactory>(); serviceCollection.AddOptions(); serviceCollection.AddSingleton<DiagnosticSource>(diagnosticSource); serviceCollection.AddSingleton(diagnosticSource); serviceCollection.AddTransient<IStartupFilter, AutoRequestServicesStartupFilter>(); serviceCollection.AddTransient<IServiceProviderFactory<IServiceCollection>, DefaultServiceProviderFactory>(); serviceCollection.AddSingleton<ObjectPoolProvider, DefaultObjectPoolProvider>(); return serviceCollection; }