0
ASP.NETコアアプリケーションをプログラムによって再起動する方法が非常に興味深いことがわかりました。ASP.NETコア複数のインスタンスを再起動
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();
}
}
と、コントローラで:
public class HomeController : Controller
{
public IActionResult Index()
{
return View();
}
public IActionResult Restart()
{
Program.Shutdown();
return RedirectToAction("Index", "Home", null);
}
}
それは本当に良い作品。これは実際にアプリケーションをシャットダウンしますが、アプリケーションへの次のリクエストで起動します。
ここで、たとえばAzureのように複数のインスタンスがインストールされている場合、どのように同じ結果が得られますか?