2015-06-08 1 views
0

При использованииQuartz.net как служба не может настроить quartz_job.xml

  var properties = new NameValueCollection(); 
      properties["quartz.plugin.triggHistory.type"] = "Quartz.Plugin.History.LoggingJobHistoryPlugin"; 

      properties["quartz.plugin.jobInitializer.type"] = "Quartz.Plugin.Xml.XMLSchedulingDataProcessorPlugin"; 
      properties["quartz.plugin.jobInitializer.fileNames"] = "quartz_jobs.xml"; 
      properties["quartz.plugin.jobInitializer.failOnFileNotFound"] = "true"; 
      properties["quartz.plugin.jobInitializer.scanInterval"] = "120"; 

      // First we must get a reference to a scheduler 
      _schedulerFactory = new StdSchedulerFactory(properties); 
      _scheduler = _schedulerFactory.GetScheduler(); 

окон обслуживания/кварц не может решить путь quartz_jobs.xml. Если я запускаю это как консоль, он отлично работает.

public static void StartJobs() 
    { 
     try 
     { 
      _logger = LogManager.GetCurrentClassLogger(); 

      var properties = new NameValueCollection(); 
      properties["quartz.plugin.triggHistory.type"] = "Quartz.Plugin.History.LoggingJobHistoryPlugin"; 

      properties["quartz.plugin.jobInitializer.type"] = "Quartz.Plugin.Xml.XMLSchedulingDataProcessorPlugin"; 
      properties["quartz.plugin.jobInitializer.fileNames"] = "quartz_jobs.xml"; 
      properties["quartz.plugin.jobInitializer.failOnFileNotFound"] = "true"; 
      properties["quartz.plugin.jobInitializer.scanInterval"] = "120"; 

      // First we must get a reference to a scheduler 
      _schedulerFactory = new StdSchedulerFactory(properties); 
      _scheduler = _schedulerFactory.GetScheduler(); 

      // start the schedule 
      _scheduler.Start(); 
     } 
     catch (Exception ex) 
     { 
      _logger.Error(ex); 
      throw new Exception(ex.Message); 
     } 
    } 
+1

Где вы разместили файл xml? Включен ли он в проект? Вместо этого попробуйте «~/quartz_jobs.xml». – Alioza

+0

в корневом каталоге, попробуйте. –

ответ

0

Если это все еще не работает, включить файл в качестве внедренного ресурса в проекте, установите действие, Копировать всегда, чтобы быть уверенным. Затем укажите полный путь к свойствам кварца:

Path.Combine(Path.GetDirectoryName(Assembly.GetEntryAssembly().Location), "quartz_jobs.xml") 
+0

это сработало. копия содержимого всегда работает. спасибо –