Я установил LetsEncrypt , он также работает как в http, так и в https, но я пытаюсь принудительно установить перенаправление HTTPS в ASP.NET Core как docs.microsoft , я использую asp.net core 2.2 и iis 10.0.14393.0 . Вот моя конфигурация конвейера:
services.Configure<CookiePolicyOptions>(options =>
{
options.CheckConsentNeeded = context => true;
options.MinimumSameSitePolicy = SameSiteMode.None;
});
services.AddAuthentication(option =>
{
..
}).AddCookie(option =>
{
option.AccessDeniedPath = "/Account/Denied";
option.LoginPath = "/Account/Login";
...
});
services.AddHttpsRedirection(options =>
{
options.RedirectStatusCode = StatusCodes.Status308PermanentRedirect;
options.HttpsPort = 443;
});
services.AddMvc().SetCompatibilityVersion(CompatibilityVersion.Version_2_2);
и в методе Configure:
if (env.IsDevelopment())
{
app.UseDeveloperExceptionPage();
app.UseDatabaseErrorPage();
}
else
{
app.UseExceptionHandler("/Home/Error");
// The default HSTS value is 30 days. You may want to change this for production scenarios, see https://aka.ms/aspnetcore-hsts.
app.UseHsts();
}
app.UseHttpsRedirection();
app.UseAuthentication();
app.UseStaticFiles(new StaticFileOptions()
{
OnPrepareResponse = context =>
{
context.Context.Response.Headers["Cache-Control"] =
"private, max-age=43200";
context.Context.Response.Headers["Expires"] =
DateTime.UtcNow.AddDays(30).ToString("R");
}
});
app.UseCookiePolicy();
app.Use(async (context, next) =>
{
// For GetTypedHeaders, add: using Microsoft.AspNetCore.Http;
context.Response.GetTypedHeaders().CacheControl =
new Microsoft.Net.Http.Headers.CacheControlHeaderValue()
{
Public = true,
MaxAge = TimeSpan.FromDays(30)
};
context.Response.Headers[Microsoft.Net.Http.Headers.HeaderNames.Vary] =
new string[] { "Accept-Encoding" };
await next();
});
app.UseMvc(routes =>
{
routes.MapRoute(
name: "default",
template: "{controller=Home}/{action=Index}/{id?}");
});
но я получаю это сообщение об ошибке в Firefox:
Страница не перенаправляет должным образом
где я ошибаюсь?