// This method gets called by the runtime. // Use this method to configure the HTTP request pipeline. public void Configure( Microsoft.AspNetCore.Builder.IApplicationBuilder app, Microsoft.AspNetCore.Hosting.IHostingEnvironment env) { app.UseForwardedHeaders(new ForwardedHeadersOptions { ForwardedHeaders = Microsoft.AspNetCore.HttpOverrides.ForwardedHeaders.XForwardedFor | Microsoft.AspNetCore.HttpOverrides.ForwardedHeaders.XForwardedProto }); if (env.IsDevelopment()) { app.UseDeveloperExceptionPage(); app.UseBrowserLink(); } else { app.UseExceptionHandler("/Home/Error"); } app.UseDefaultFiles( new Microsoft.AspNetCore.Builder.DefaultFilesOptions() { DefaultFileNames = new System.Collections.Generic.List <string>() { "index.htm", "index.html", "slick.htm" } } ); app.UseStaticFiles(new StaticFileOptions() { ServeUnknownFileTypes = true, DefaultContentType = "application/octet-stream", ContentTypeProvider = new ExtensionContentTypeProvider(), OnPrepareResponse = delegate(Microsoft.AspNetCore.StaticFiles.StaticFileResponseContext context) { // https://stackoverflow.com/questions/49547/how-do-we-control-web-page-caching-across-all-browsers // The Cache-Control is per the HTTP 1.1 spec for clients and proxies // If you don't care about IE6, then you could omit Cache-Control: no-cache. // (some browsers observe no-store and some observe must-revalidate) context.Context.Response.Headers["Cache-Control"] = "no-cache, no-store, must-revalidate, max-age=0"; // Other Cache-Control parameters such as max-age are irrelevant // if the abovementioned Cache-Control parameters (no-cache,no-store,must-revalidate) are specified. // Expires is per the HTTP 1.0 and 1.1 specs for clients and proxies. // In HTTP 1.1, the Cache-Control takes precedence over Expires, so it's after all for HTTP 1.0 proxies only. // If you don't care about HTTP 1.0 proxies, then you could omit Expires. context.Context.Response.Headers["Expires"] = "-1, 0, Tue, 01 Jan 1980 1:00:00 GMT"; // The Pragma is per the HTTP 1.0 spec for prehistoric clients, such as Java WebClient // If you don't care about IE6 nor HTTP 1.0 clients // (HTTP 1.1 was introduced 1997), then you could omit Pragma. context.Context.Response.Headers["pragma"] = "no-cache"; // On the other hand, if the server auto-includes a valid Date header, // then you could theoretically omit Cache-Control too and rely on Expires only. // Date: Wed, 24 Aug 2016 18:32:02 GMT // Expires: 0 // But that may fail if e.g. the end-user manipulates the operating system date // and the client software is relying on it. // https://stackoverflow.com/questions/21120882/the-date-time-format-used-in-http-headers } }); Microsoft.AspNetCore.Builder.WebSocketOptions webSocketOptions = new Microsoft.AspNetCore.Builder.WebSocketOptions() { KeepAliveInterval = System.TimeSpan.FromSeconds(120), ReceiveBufferSize = 4 * 1024 }; app.UseWebSockets(webSocketOptions); app.UseOpenFolderOrFileExtensions("/OpenFolder"); app.UseRansackSearch("/ransack"); app.UseRansackSearchAndReplace("/sar"); app.UseTable("/table"); app.UseFileContents("/textfile"); app.UseMvc(routes => { routes.MapRoute( name: "default", template: "{controller=Home}/{action=Index}/{id?}"); }); } // End Sub Configure