Exemplo n.º 1
0
        public void ConfigureServices(IServiceCollection services)
        {
            services.Configure <ForwardedHeadersOptions>(options =>
            {
                options.ForwardedHeaders = ForwardedHeaders.XForwardedFor | ForwardedHeaders.XForwardedProto;
            });


            var delayConfigValue = Configuration["DelaySeconds"];

            var delay = TimeSpan.FromSeconds(10);

            if (!string.IsNullOrEmpty(delayConfigValue))
            {
                if (int.TryParse(delayConfigValue, out var i))
                {
                    delay = TimeSpan.FromSeconds(i);
                }
            }

            var readyAtUtc = DateTime.UtcNow.Add(delay);

            services.ConfigureHealthChecks()
            .AddCheck("delay",
                      () =>
            {
                if (readyAtUtc <= DateTime.UtcNow)
                {
                    return(HealthCheckResult.Healthy($"is ready since: {readyAtUtc}"));
                }

                return(HealthCheckResult.Unhealthy($"will be ready at: {readyAtUtc}"));
            },
                      new[] { "services" })
            .AddCheck <DelayHealthCheck>("delay_svc", tags: new[] { "services" })
            ;

            services.AddCors(options => options.AddDefaultPolicy(builder => builder.AllowAnyOrigin()));
            services.AddControllersWithViews();

            services
            .AddSingleton <MyApplicationLifetimeHostedService>()
            .AddSingleton <IMyApplicationLifetime>(p => p.GetRequiredService <MyApplicationLifetimeHostedService>())
            .AddSingleton <IHostedService>(p => p.GetRequiredService <MyApplicationLifetimeHostedService>())
            ;

            //services.AddHostedService<DelayHostedService>();
            services
            .AddSingleton <DelayHostedBackgroundService>()
            .AddSingleton <IHostedService>(p => p.GetRequiredService <DelayHostedBackgroundService>());

            services.AddSwagger(MySwaggerDocs.GetSwaggerDocs());
        }
Exemplo n.º 2
0
        public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
        {
            DateTime upTime = DateTime.UtcNow;

            app.UseApiPathBase(Configuration);
            app.UseForwardedHeaders();

            app.Use(async(context, next) =>
            {
                context.Items.Add("UpSince", upTime);
                // Do work that doesn't write to the Response.
                await next.Invoke();
                // Do logging or other work that doesn't write to the Response.
            });

            if (env.IsDevelopment())
            {
                app.UseDeveloperExceptionPage();
            }

            app.UseStaticFiles();
            //app.UseDefaultFiles().UseStaticFiles();
            //app.UseHttpsRedirection();

            app.UseRouting();
            app.UseCors();
            app.UseAuthorization();

            app.UseEndpoints(endpoints =>
            {
                endpoints.MapControllerRoute(
                    name: "default",
                    pattern: "{controller=Home}/{action=Index}/{id?}");
                endpoints.MapControllers();
                endpoints.MapDefaultHealthChecks();
            });

            app.UseSwagger(MySwaggerDocs.GetSwaggerDocs());
        }