/// <summary> /// This method gets called by the runtime; use it to configure the ASP.NET Core request processing pipeline. /// </summary> /// <param name="applicationBuilder">Configures ASP.NET Core request processing pipeline.</param> /// <param name="hostApplicationLifetime">Notifies about application events.</param> /// <param name="serviceProvider">Fetches services from the DI container.</param> /// <param name="logger">Logs messages generated by this method.</param> // ReSharper disable once UnusedMember.Global public void Configure(IApplicationBuilder applicationBuilder, IHostApplicationLifetime hostApplicationLifetime, IServiceProvider serviceProvider, ILogger <Startup> logger) { logger.LogInformation("Configuring ASP.NET Core request processing pipeline ..."); applicationBuilder .UseConversationId() .UseHttpLogging(Configuration) .UseExceptionHandler(new ExceptionHandlerOptions { ExceptionHandler = CustomExceptionHandler.HandleException, AllowStatusCode404Response = true }) .UseMiniProfiler(Configuration) .UseHttpsRedirection() .UseRouting() .UseAuthentication() .UseAuthorization() .UseEndpoints(endpoints => { endpoints.MapControllers(); }); IApplicationStartedEventNotifier applicationStartedEventNotifier = serviceProvider.GetRequiredService <IApplicationStartedEventNotifier>(); hostApplicationLifetime.ApplicationStarted.Register(() => OnApplicationStarted(applicationStartedEventNotifier, logger)); hostApplicationLifetime.ApplicationStopping.Register(() => OnApplicationStopping(logger)); hostApplicationLifetime.ApplicationStopped.Register(() => OnApplicationStopped(logger)); }
private static void OnApplicationStarted(IApplicationStartedEventNotifier applicationStartedEventNotifier, ILogger logger) { applicationStartedEventNotifier.Notify(); logger.LogInformation("{ApplicationName} application has started", ApplicationName); }