服务器崩溃并重新启动后,自动重新启动MVC应用程序

时间:2019-08-22 16:54:49

标签: asp.net-mvc quartz-scheduler

我在MVC应用程序中使用了Quartz时间表,该应用程序从application_start开始,我在IIS上部署了该应用程序,以防万一服务器崩溃然后重新启动,如何使我的应用程序自动运行,从而使时间表自动重新启动

这是我第一次在任何服务器上部署Quartz应用程序

protected void Application_Start()
        {
            AreaRegistration.RegisterAllAreas();

            WebApiConfig.Register(GlobalConfiguration.Configuration);
            FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);
            RouteConfig.RegisterRoutes(RouteTable.Routes);

            JobScheduler.Start();
        }

1 个答案:

答案 0 :(得分:0)

如果服务器崩溃,则在下一个http请求上,您的应用程序将再次启动。然后,您的JobSchedular会像第一次运行一样再次恢复。什么也没做。

但是,问题是服务器崩溃时您的AppPool是否会重新启动。服务器崩溃不是正常情况,不应预期会发生。不仅崩溃场景而且AppPool都将回收-整个Web应用程序将在下一个http请求时再次启动。

我建议在IIS AppPool设置中将Idle Time-out Action设置为暂停,而不是默认的 Terminate

服务器恢复后,如果您不想等到下一个http请求,则必须钩住外部触发器以启动应用程序启动。您可以通过Windows计划作业(会访问您网站的网址)或第三方服务来定期执行此操作。

崩溃后,如果AppPool关闭(停止),则您无法从Web应用程序代码中执行任何操作。