Имя среды доступа в Program.Main в ASP.NET Core
Использование ASP.NET Mvc Core Мне нужно было настроить среду разработки для использования https, поэтому я добавил ниже метод Main
в 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();
Как я могу получить доступ к среде хостинга здесь, чтобы я мог условно установить протокол/номер порта/сертификат?
В идеале я бы просто использовал CLI для управления моей средой размещения так:
dotnet run --server.urls https://localhost:5000 --cert ssl-dev.pfx password
но, похоже, не существует способа использовать сертификат из командной строки.
Ответы
Ответ 1
Я думаю, что самым простым решением является считывание значения из ASPNETCORE_ENVIRONMENT
среды ASPNETCORE_ENVIRONMENT
и сравнение его с EnvironmentName.Development
:
var environment = Environment.GetEnvironmentVariable("ASPNETCORE_ENVIRONMENT");
var isDevelopment = environment == EnvironmentName.Development;
Ответ 2
Это мое решение (написанное для 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();
}