У меня есть приложение, которое я размещаю в качестве дополнительного приложения на IIS.Startup.cs прилагается.Приложение прекрасно в Chrome и Edge.В FireFox, IE11 и Safari / iPhone перенаправление на другую страницу занимает 2 минуты.Время в инструментах developper показывает, что почти все время затрачивается на получение.
Я читал, что у Chrome были проблемы с кэшированием, но он прекрасно работает для меня.
То, что я пробовал:
-Удалено AddAutheentication
-добавлен элемент управления кэшем (в настоящее время комментируется)
Есть идеи?
Обновление, дополнительная информация: проблемный сайт находится за брандмауэром FortiWeb.Обновление 2: при установке на сервер, не расположенный за брандмауэром, сайт работает нормально во всех браузерах.Так что системный парень изучает Fortiweb.Есть идеи, в чем может быть проблема?Мы не можем быть единственными, кто управляет сайтом Core 2.2 на IIS за FoertiWeb.
namespace OVNew
{
public class Startup
{
public Startup(IHostingEnvironment env)
{
//to add support for different environments, watch:
//https://www.youtube.com/watch?v=nIoDpTPIle8
var Builder = new ConfigurationBuilder()
.SetBasePath(env.ContentRootPath)
.AddJsonFile("appsettings.json", optional: false, reloadOnChange: true)
.AddJsonFile($"appsettings.{env.EnvironmentName}.json", optional: true)
.AddEnvironmentVariables();//for secret keys etc
Configuration = Builder.Build();
string subPath = Environment.GetEnvironmentVariable("SUB_PATH");
//Configuration = configuration;
}
public IConfiguration Configuration { get; }
// This method gets called by the runtime. Use this method to add services to the container.
public void ConfigureServices(IServiceCollection services)
{
services.Configure<CookiePolicyOptions>(options =>
{
// This lambda determines whether user consent for non-essential cookies is needed for a given request.
options.CheckConsentNeeded = context => true;
options.MinimumSameSitePolicy = SameSiteMode.None;
});
//https://www.youtube.com/watch?v=nIoDpTPIle8
services.Configure<AppSettings>(Configuration.GetSection("AppSettings"));
services.AddMvc()
.AddRazorPagesOptions(options =>
{
options.Conventions.AuthorizePage("/Survey/Index");
options.Conventions.AuthorizeFolder("/Survey");
})
.SetCompatibilityVersion(CompatibilityVersion.Version_2_2);
//use Cookie.Path to limit cookie to specific application
services.AddAuthentication(CookieAuthenticationDefaults.AuthenticationScheme)
.AddCookie(options =>
{
options.Cookie.SameSite = SameSiteMode.Strict;
options.AccessDeniedPath = "/AccessDenied";
});
services.AddSingleton<IHttpContextAccessor, HttpContextAccessor>();
var connection = Configuration.GetConnectionString("OVContext");
services.AddDbContext<OVContext>(options => options.UseSqlServer(connection));
}
// 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();
}
else
{
app.UseExceptionHandler("/Error");
app.UseHsts();
}
// app.Use(async (c, next) =>
// {
// c.Response.Headers.Add("Cache-Control", "no-store,no-cache");
// c.Response.Headers.Add("Pragma", "no-cache");
// await next();
// });
app.UseHttpsRedirection();
app.UseStaticFiles();
app.UseCookiePolicy();
app.UseAuthentication();
//app.UseMvc();
app.UseMvc(routes =>
{
routes.MapRoute(
name: "default",
template: "{controller=Home}/{action=Index}/{id?}");
});
}
}
}