CrystalQuartz作为Windows服务运行时无法正常工作

时间:2018-05-16 13:13:06

标签: c# windows-services console-application scheduler quartz.net

我在我的quartz scheduler项目中添加了水晶石英来显示仪表板(check link)。 当我将应用程序作为控制台应用程序运行时,下面的代码工作正常。但是当我们在同一台机器上将其部署为Windows服务时,它不起作用。它甚至没有抛出任何异常,也没有登录事件记录器。

IScheduler scheduler = SetupScheduler();
                Action<IAppBuilder> startup = app => 
                {
                    app.UseCrystalQuartz(scheduler);
                };

                Console.WriteLine("Starting self-hosted server...");
                using (WebApp.Start("http://localhost:9000/", startup))
                {
                    Console.WriteLine("Server is started");
                    Console.WriteLine();
                    Console.WriteLine("Check http://localhost:9000/quartz to see jobs information");
                    Console.WriteLine();

                    Console.WriteLine("Starting scheduler...");
                    scheduler.Start();

                    Console.WriteLine("Scheduler is started");
                    Console.WriteLine();
                    Console.WriteLine("Press [ENTER] to close");     
                    Console.ReadLine();     
                }

                Console.WriteLine("Shutting down...");
                scheduler.Shutdown(waitForJobsToComplete: true);
                Console.WriteLine("Scheduler has been stopped");

当我们将应用程序部署为Windows服务时,我在浏览器中打开链接时遇到以下错误&#34;无法访问此站点&#34;。但是当我们将它作为控制台运行时,它的工作正常。

1 个答案:

答案 0 :(得分:0)

最后,我通过将console.readline替换为下面的代码

来解决它
System.Threading.ManualResetEvent ojbManualResetEvent = new System.Threading.ManualResetEvent(false);
                ojbManualResetEvent.WaitOne();