Example #1
0
        public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
        {
            ContainerContext.Initialize(new IocContainer(app.ApplicationServices));

            DefaultFilesOptions defaultFilesOptions = new DefaultFilesOptions();

            defaultFilesOptions.DefaultFileNames.Clear();
            defaultFilesOptions.DefaultFileNames.Add("index.html");
            app.UseDefaultFiles(defaultFilesOptions);
            app.UseStaticFiles();
            if (env.IsDevelopment())
            {
                //开启验证异常显示
                //PII is hidden 异常处理
                IdentityModelEventSource.ShowPII = true;
                app.UseDeveloperExceptionPage();
            }
            app.UseForwardedHeaders();
            app.UseCors(_corsPolicy);
            app.UseSwagger(c =>
            {
                c.RouteTemplate = $"/{_serviceName}/swagger/{{documentName}}/swagger.json";
                c.PreSerializeFilters.Add((swaggerDoc, httpReq) =>
                {
                    swaggerDoc.Servers = new List <OpenApiServer> {
                        new OpenApiServer {
                            Url = $"/", Description = "系统管理相关Api"
                        }
                    };
                });
            });
            app.UseSwaggerUI(c =>
            {
                c.SwaggerEndpoint($"/{_serviceName}/swagger/v0.5.0/swagger.json", "Andc v0.5.0");
                c.RoutePrefix = $"{_serviceName}";
            });
            //app.UseErrorHandling();
            app.UseHealthChecks($"/{_serviceName}/health-24b01005-a76a-4b3b-8fb1-5e0f2e9564fb", new HealthCheckOptions()
            {
                Predicate = _ => true,
                // 该响应输出是一个json,包含所有检查项的详细检查结果
                ResponseWriter = UIResponseWriter.WriteHealthCheckUIResponse
            });
            app.UseRouting();
            app.UseAuthentication();
            app.UseAuthorization();
            //app.UseCustomAuthentication();
            app.UseEndpoints(endpoints =>
            {
                endpoints.MapControllers().RequireAuthorization();
            });

            //if (env.IsProduction() || env.IsStaging())
            {
                app.RegisterToConsul(Configuration.GetSection("Consul").Get <ConsulOption>());
            }
        }