У меня есть основное приложение asp. net, в котором есть настройки для Identity Server. Для этого у меня есть appsettings. json, appsettings.Development. json и appsettings.Production. json.
appsettings. json:
..
"ApplicationInsights": {
"InstrumentationKey": ""
},
"IdentityServer": {
"Clients": {
"ApplySupportTool.Client": {
"Profile": "IdentityServerSPA"
}
}
},
"BuildInfo": {
"Environment": "Integration",
"Version": "1.0.0 Beta"
},
..
appsettings.Development. json
{
"IdentityServer": {
"Key": {
"Type": "Development"
}
}
}
appsettings.Production. json
{
"IdentityServer": {
"Key": {
"Type": "Store",
"StoreName": "My",
"StoreLocation": "CurrentUser",
"Name": "[Name]"
}
}
}
Локально это работает без проблем, и я могу переключаться между ними, удаляя среду переменная из launchsettings:
"environmentVariables": {
"ASPNETCORE_ENVIRONMENT": "Development"
}
С точки зрения загрузки файлов настроек, аналогичных шаблону по умолчанию, мой HostBuilder создается таким образом, без каких-либо специальных дополнений для файлов настроек.
public static IHostBuilder CreateHostBuilder(string[] args)
{
return Host.CreateDefaultBuilder(args)
.UseServiceProviderFactory(new AutofacServiceProviderFactory())
.ConfigureWebHostDefaults(webHostBuilder =>
{
webHostBuilder
.UseContentRoot(Directory.GetCurrentDirectory())
.UseStartup<Startup>()
.UseAzureAppServices();
})
.UseSerilog();
}
Когда я проверяю конструктор Startup.cs, я могу убедиться, что он также загрузил дополнительный файл.
Но когда я развертываю его в Azure, кажется, что всегда загружается разрабатываемая версия. Насколько мне известно, без установленного значения должно быть go для производства (которое работает локально). Конечно, я также попытался явно добавить ASPNETCORE_ENVIRONMENT со значением «Производство» в свой AppService. Но это тоже ничего не изменило. Должен ли я загружать это особым образом или что-то в этом роде?