Я прочитал Работа с несколькими средами и о Startup.
Когда приложение ASP.NET Core запускается, класс Startup используется для начальной загрузки приложения, загрузки его параметров конфигурации и т. д. (узнайте больше о запуске ASP.NET). Однако если существует класс с именем Startup{EnvironmentName} (например, StartupDevelopment) и переменная среды ASPNETCORE_ENVIRONMENT соответствует этому имени, то вместо него используется этот класс Startup. Таким образом, вы можете настроить Startup для разработки, но иметь отдельный StartupProduction, который будет использоваться при запуске приложения в рабочей среде. Или наоборот.
Итак, у меня есть 3 класса запуска StartupDevelopment
, StartupStaging
и StartupProduction
, и мой Program.cs
настроен, как показано ниже.
public class Program
{
public static void Main(string[] args)
{
var host = new WebHostBuilder()
.UseKestrel()
.UseContentRoot(Directory.GetCurrentDirectory())
.UseIISIntegration()
.UseStartup<StartupDevelopment>()
.Build();
host.Run();
}
}
Обратите внимание, что .UseStartup<StartupDevelopment>()
настроен для StartupDevelopment
.
Теперь в Staging
и Production
я бы поставил ASPNETCORE_ENVIRONMENT
соответственно. Однако как ядро Asp.Net узнает, что нужно использовать StartupStaging
или StartupProduction
, поскольку оно жестко запрограммировано на StartupDevelopment
?
Startup{ENVIRONMENT}.cs
все еще работает? Они удалили его из своего репозитория на github... зафиксировать/ - person Technetium   schedule 31.08.2016ConfigureDevelopment
,ConfigureStaging
иConfigureProduction
и использовал их условно в основном методеConfigure
. - person adem caglin   schedule 31.08.2016