我在我的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;。但是当我们将它作为控制台运行时,它的工作正常。
答案 0 :(得分:0)
最后,我通过将console.readline替换为下面的代码
来解决它System.Threading.ManualResetEvent ojbManualResetEvent = new System.Threading.ManualResetEvent(false);
ojbManualResetEvent.WaitOne();