Niestety nie można pobrać hostującego adresu URL aplikacji, ponieważ bit ten jest kontrolowany przez IIS/WebListener itp. I nie przepływa bezpośrednio do aplikacji.
Dobrą alternatywą jest zapewnienie każdemu z serwerów zmiennej środowiskowej ASPNET_ENV
, aby następnie oddzielić swoją logikę. Oto kilka przykładów, w jaki sposób z niego korzystać:
Startup.cs:
public class Startup
{
public void Configure(IApplicationBuilder app)
{
// Will only get called if there's no method that is named Configure{ASPNET_ENV}.
}
public void ConfigureDev(IApplicationBuilder app)
{
// Will get called when ASPNET_ENV=Dev
}
}
Oto kolejny przykład, gdy ASPNET_ENV = Dev i chcemy zrobić separację klasy zamiast metody separacji:
Startup.cs:
public class Startup
{
public void Configure(IApplicationBuilder app)
{
// Wont get called.
}
public void ConfigureDev(IApplicationBuilder app)
{
// Wont get called
}
}
StartupDev.cs
public class StartupDev // Note the "Dev" suffix
{
public void Configure(IApplicationBuilder app)
{
// Would only get called if ConfigureDev didn't exist.
}
public void ConfigureDev(IApplicationBuilder app)
{
// Will get called.
}
}
nadzieję, że to pomaga.
Dziękuję za odpowiedź. Jest to pomocne (choć rozczarowujące), ale postanowiłem wybrać inną trasę dla mojego problemu. –
lub trzymaj się jednej metody "Configure" i po prostu sprawdź wartość 'env.EnvironmentName' z dobrym starym stwierdzeniem jeśli: –