在 ASP.NET Core 中访问 Program.Main 中的环境名称
Access environment name in Program.Main in ASP.NET Core
使用 ASP.NET Mvc Core 我需要将我的开发环境设置为使用 https,所以我将以下内容添加到 Program.cs 中的 Main
方法中:
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();
如何访问这里的托管环境,以便有条件地设置 protocol/port number/certificate?
理想情况下,我会像这样使用 CLI 来操纵我的托管环境:
dotnet run --server.urls https://localhost:5000 --cert ssl-dev.pfx password
但似乎没有办法从命令行使用证书。
我认为最简单的解决方案是从 ASPNETCORE_ENVIRONMENT
环境变量中读取值并将其与 Environments.Development
进行比较:
var environment = Environment.GetEnvironmentVariable("ASPNETCORE_ENVIRONMENT");
var isDevelopment = environment == Environments.Development;
这是我的解决方案(为 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();
}
在 .NET 核心 3.0 中
using System;
using Microsoft.Extensions.Hosting;
然后
var isDevelopment = Environment.GetEnvironmentVariable("ASPNETCORE_ENVIRONMENT") == Environments.Development;
使用 ASP.NET Mvc Core 我需要将我的开发环境设置为使用 https,所以我将以下内容添加到 Program.cs 中的 Main
方法中:
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();
如何访问这里的托管环境,以便有条件地设置 protocol/port number/certificate?
理想情况下,我会像这样使用 CLI 来操纵我的托管环境:
dotnet run --server.urls https://localhost:5000 --cert ssl-dev.pfx password
但似乎没有办法从命令行使用证书。
我认为最简单的解决方案是从 ASPNETCORE_ENVIRONMENT
环境变量中读取值并将其与 Environments.Development
进行比较:
var environment = Environment.GetEnvironmentVariable("ASPNETCORE_ENVIRONMENT");
var isDevelopment = environment == Environments.Development;
这是我的解决方案(为 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();
}
在 .NET 核心 3.0 中
using System;
using Microsoft.Extensions.Hosting;
然后
var isDevelopment = Environment.GetEnvironmentVariable("ASPNETCORE_ENVIRONMENT") == Environments.Development;