En utilisant ASP.NET Mvc Core, je devais configurer mon environnement de développement pour utiliser https. J'ai donc ajouté ce qui suit à la méthode Main
dans Program.cs:
var Host = new WebHostBuilder()
.UseContentRoot(Directory.GetCurrentDirectory())
.UseIISIntegration()
.UseStartup<Startup>()
.UseKestrel(cfg => cfg.UseHttps("ssl-dev.pfx", "Password"))
.UseUrls("https://localhost:5000")
.UseApplicationInsights()
.Build();
Host.Run();
Comment puis-je accéder à l'environnement d'hébergement ici afin de pouvoir définir de manière conditionnelle le protocole/le numéro de port/le certificat?
Idéalement, j'utiliserais simplement la CLI pour manipuler mon environnement d'hébergement de la manière suivante:
dotnet run --server.urls https://localhost:5000 --cert ssl-dev.pfx password
mais il ne semble pas y avoir de moyen d'utiliser un certificat depuis la ligne de commande.
Je pense que la solution la plus simple est de lire la valeur du ASPNETCORE_ENVIRONMENT
variable d’environnement et comparez-la avec EnvironmentName.Development
:
var environment = Environment.GetEnvironmentVariable("ASPNETCORE_ENVIRONMENT");
var isDevelopment = environment == EnvironmentName.Development;
Voici ma solution (écrite pour ASP.NET Core 2.1):
public static void Main(string[] args)
{
var Host = CreateWebHostBuilder(args).Build();
using (var scope = Host.Services.CreateScope())
{
var services = scope.ServiceProvider;
var hostingEnvironment = services.GetService<IHostingEnvironment>();
if (!hostingEnvironment.IsProduction())
SeedData.Initialize();
}
Host.Run();
}