J'ai déployé mon core asp.net core 2.1 WebApi vers IIS 10. (Le IIS fonctionnait comme un proxy))
J'ai ajouté un certificat SSL dans IIS et des liaisons pour le port non sécurisé (8081) et le port sécurisé (8082).
Mais lorsque je visite http: // localhost: 8081/api/values , le navigateur me renvoie simplement 403 Interdit, ne me redirige pas vers https: // localhost: 8082/api/values .
Mon code de démarrage est comme ci-dessous:
public void ConfigureServices(IServiceCollection services)
{
services.AddMvc()
.SetCompatibilityVersion(CompatibilityVersion.Version_2_1);
services.AddHttpsRedirection(options=>
{
options.HttpsPort = 8082;
});
}
public void Configure(IApplicationBuilder app, IHostingEnvironment env)
{
//app.UseForwardedHeaders();
if (env.IsDevelopment())
{
app.UseDeveloperExceptionPage();
}
else
{
app.UseHsts();
}
app.UseHttpsRedirection();
app.UseMvc();
}
Dans mon startup.cs j'ai fait ces paramètres
public void ConfigureServices(IServiceCollection services)
{
try
{
//..other codes
services.AddHttpsRedirection(options =>
{
options.HttpsPort = 443;
});
}
catch (Exception ex)
{
string innerMessage = "";
if (ex.InnerException != null)
innerMessage = ex.InnerException.Message;
Log.Logger.Error("ConfigureServices Message: " + ex.Message + " inner Message:" + innerMessage + "Env.Name:" + _env.EnvironmentName);
}
}
Et dans la méthode Configure, j'ai utilisé comme ça
app.UseHttpsRedirection();
if (env.IsDevelopment())
{
app.UseDeveloperExceptionPage();
}
else
{
app.UseExceptionHandler("/Error");
app.UseHsts();
}