我在windows服务中实现了quartz.net来运行任务。在本地工作站上一切正常。但是一旦它被部署到远程win服务器主机,它就会在初始化后挂起。
ISchedulerFactory schedFact = new StdSchedulerFactory();
// get a scheduler
var _scheduler = schedFact.GetScheduler();
// Configuration of triggers and jobs
var trigger = (ICronTrigger)TriggerBuilder.Create()
.WithIdentity("trigger1", "group1")
.WithCronSchedule(job.Value)
.Build();
var jobDetail = JobBuilder.Create(Type.GetType(job.Key)).StoreDurably(true)
.WithIdentity("job1", "group1").Build();
var ft = _scheduler.ScheduleJob(jobDetail, trigger);
一切似乎都是标准的。我有调度程序的私有静态指针,日志记录进程在作业初始化并添加到调度程序后立即停止。之后没有其他事情发生。 我很感激任何建议。
感谢。
PS:
根据quartz.net在事件查看器mb中发现了一些奇怪的事件:
Restart Manager - Starting session 2 - 2012-07-09T15:14:15.729569700Z.
Restart Manager - Ending session 2 started 2012-07-09T15:14:15.729569700Z.
答案 0 :(得分:2)
根据您的问题以及您在评论中提供的其他信息,我猜您的服务的onStart方法存在问题。
您可以采取以下措施来帮助找出并解决问题:
答案 1 :(得分:0)
我遇到了类似的问题,这是因为在程序集名称中有点/句点,例如Project.Update.Service
。当我将其更改为ProjectUpdateService
时,它工作正常。
奇怪的是,它始终适用于开发机器。永远不要在远程机器上。
更新:可能是导致此问题的服务长度。通过删除点我缩短了服务名称。看起来最大长度为25个字符。