コード例 #1
0
        /// <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));
        }
コード例 #2
0
        private static void OnApplicationStarted(IApplicationStartedEventNotifier applicationStartedEventNotifier,
                                                 ILogger logger)
        {
            applicationStartedEventNotifier.Notify();

            logger.LogInformation("{ApplicationName} application has started", ApplicationName);
        }