// This method gets called by the runtime. Use this method to configure the HTTP request pipeline. public void Configure(IApplicationBuilder app, IHostingEnvironment env) { if (env.IsDevelopment()) { app.UseDeveloperExceptionPage(); } var wwwroot = System.IO.Path.Combine(System.AppDomain.CurrentDomain.BaseDirectory, "wwwroot"); if (!System.IO.Directory.Exists(wwwroot)) { System.IO.Directory.CreateDirectory(wwwroot); } // Set up custom content types -associating file extension to MIME type var provider = new Microsoft.AspNetCore.StaticFiles.FileExtensionContentTypeProvider(); //provider.Mappings[".yaml"] = "text/yaml"; provider.Mappings[".doc"] = "application/json"; app.UseDefaultFiles().UseStaticFiles(new StaticFileOptions { FileProvider = new Microsoft.Extensions.FileProviders.PhysicalFileProvider(wwwroot), ContentTypeProvider = provider, OnPrepareResponse = c => { if (c.File.Exists && string.Equals(".doc", System.IO.Path.GetExtension(c.File.Name))) { //c.Context.Response.Headers[HeaderNames.CacheControl] = "public,max-age=600"; //600 c.Context.Response.Headers[HeaderNames.CacheControl] = "public, no-cache, no-store"; c.Context.Response.Headers[HeaderNames.Pragma] = "no-cache"; c.Context.Response.Headers[HeaderNames.Expires] = "-1"; } c.Context.Response.Headers[HeaderNames.AccessControlAllowOrigin] = "*"; } }).UseDirectoryBrowser(); app.UseForwardedHeaders(new ForwardedHeadersOptions { ForwardedHeaders = ForwardedHeaders.XForwardedFor | ForwardedHeaders.XForwardedProto }).UseAuthentication().UseCors("any"); //==================First step==================// Configer.LoadBusiness(); //==================The second step==================// //add route app.UseMvc(routes => { foreach (var item in Configer.BusinessList) { routes.MapRoute( name: item.Key, template: string.Format("{0}/{{*path}}", item.Key), defaults: new { controller = "Business", action = "Call" }); } }); //==================The third step==================// Configer.UseDoc(System.IO.Path.Combine(wwwroot)); }