У меня есть два веб-сайта на моем промежуточном сервере, оба являются базовыми сайтами Asp.net Core, которые работают в IIS. Я установил переменную окружения ASPNETCORE_ENVIRONMENT
в Staging
по всей машине. Это хорошо работает для одного из сайтов, однако другой игнорирует переменную и работает в режиме производства. Мне нужно настроить среду хостинга в файл web.config
, чтобы запустить его в промежуточном режиме.Переменная окружения Asp.Net Core Hosting игнорируется
Любые подсказки относительно того, почему один сайт не учитывает переменную окружения?
EDIT: В обоих моих Startup(IHostingEnvironment env)
конструкторами, я использую переменные среды:
public Startup(IHostingEnvironment env)
{
var builder = new ConfigurationBuilder()
.SetBasePath(env.ContentRootPath)
.AddJsonFile("appsettings.json", optional: true, reloadOnChange: true)
.AddJsonFile($"appsettings.{env.EnvironmentName}.json", optional: true)
.AddJsonFile("logging.json")
.AddEnvironmentVariables(); // <---
Configuration = builder.Build();
}
только для двойной проверки - вы уверены, что ASPNETCORE_ENVIRONMENT = этап второго экземпляра, но env.EnvironmentName возвращает «Production» для него и значения из appsettings.Staging.json не используются? Кстати, вы не забудете опубликовать файл appsettings.Staging.json? – Set
Я не использую 'appsettings.Staging.json' на любом сайте. ASPNETCORE_ENVIRONMENT устанавливается в машинном режиме. Запуск регистрации во втором журнале сайта: «Окружающая среда: производство». – Thaoden
Вы можете проверить, что возвращает Environment.GetEnvironmentVariable («ASPNETCORE_ENVIRONMENT»)? – Set