Ich fand eine recht interessante Möglichkeit, eine ASP.NET Core-Anwendung programmgesteuert neu zu starten.ASP.NET Core mehrere Instanzen neu starten
public class Program
{
private static CancellationTokenSource cancelTokenSource = new CancellationTokenSource();
public static void Main(string[] args)
{
var host = new WebHostBuilder()
.UseKestrel()
.UseContentRoot(Directory.GetCurrentDirectory())
.UseIISIntegration()
.UseStartup<Startup>()
.UseApplicationInsights()
.Build();
host.Run(cancelTokenSource.Token);
}
public static void Shutdown()
{
cancelTokenSource.Cancel();
}
}
und dann in der Steuerung:
public class HomeController : Controller
{
public IActionResult Index()
{
return View();
}
public IActionResult Restart()
{
Program.Shutdown();
return RedirectToAction("Index", "Home", null);
}
}
Es funktioniert wirklich gut. Dadurch wird die Anwendung tatsächlich beendet, aber bei der nächsten Anfrage an die App wird sie gestartet.
Nun, wie werde ich dasselbe erreichen, wenn ich mehrere Instanzen wie zum Beispiel in Azure installiert habe?