У меня есть ASP.NET Core
Api
, где я использую настройки приложения. {Environmentname} .json.Затем у меня также есть соответствующий файл launchSettings.json с различными параметрами среды, чтобы я мог работать с любым конкретным файлом настроек среды.
В файле Startup.cs у нас есть условный параметр, в котором, если мы не в-prod, затем мы используем определенный набор Jwt
authentication
(просто некоторые проверочные проверки отключены), затем в prod мы загружаем другую версию, в которой есть все проверки для включения.
На моем локальном хосте это прекрасно работает, когда environment.IsDevelopment () возвращает true, а environment.IsProduction () возвращает false.Отлично!
Но когда я запускаю это через наш процесс сборки и развертываю в нашей тестовой среде, environment.IsDevelopment () теперь возвращает false.
Я добавил в опцию в ПрограммеФайл .cs для добавления ConfigurationBuilder, чтобы я мог передавать переменные процессу сборки, который выглядит следующим образом:
dotnet restore
dotnet build --environment "Development"
dotnet publish -o ..\Artifacts
Я опубликую соответствующие файлы и соответствующий код для получения дополнительной информации ...
Program.cs
public static IWebHost BuildWebHost(string[] args)
{
var config = new ConfigurationBuilder()
.AddCommandLine(args)
.Build();
return WebHost.CreateDefaultBuilder(args)
.UseConfiguration(config)
.UseStartup<Startup>()
.UseNLog()
.Build();
}
Startup.cs (метод ConfigureServices)
services.AddAuthentication(JwtBearerDefaults.AuthenticationScheme).AddJwtBearer(options =>
{
// removed code not relevant...
// options.TokenValidationParameters = Environment.IsProduction()
// options.TokenValidationParameters = Environment.IsEnvironment("Prod")
options.TokenValidationParameters = Environment.IsDevelopment()
? devTokenValidationParameters
: prodTokenValidationParameters;
// options.TokenValidationParameters = devTokenValidationParameters;
});
Почему вспомогательная среда. Здесь не работают проверки {EnvironmentName} ()?