1

У меня есть приложение ASP.NET MVC 3, реализующее архитектуру Sharp. Я пытаюсь заставить Quartz.net наладить и хорошо работать с Castle Windsor в течение нескольких дней без везения. Основываясь на том, что я знаю, я правильно настроил все, но у меня все еще есть проблемы.Ошибка Quartz.net Setup: «обработчик onfiguration встретился <job>»

В моем Global.cs файла, создавая свой контейнер и пытаемся зарегистрировать кварцевые работы:

var container = new WindsorContainer(new XmlInterpreter("quartz_jobs.xml")); 
container.AddFacility("quartznet", new QuartzFacility()); 

В моем quartz_jobs.xml файла У меня есть следующее содержание:

<?xml version="1.0" encoding="utf-8" ?> 
<quartz xmlns="http://quartznet.sourceforge.net/JobSchedulingData" 
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
      version="1.0" 
      overwrite-existing-jobs="true"> 
<job> 
    <job-detail> 
     <name>DeleteLoansWithoutClientsJob</name> 
     <job-type>EasyOptions.Web.Mvc.Code.Jobs.DeleteLoansWithoutClientsJob, EasyOptions.Web.Mvc</job-type> 
     <durable>true</durable> 
    </job-detail> 
    <trigger> 
     <cron> 
      <name>DeleteLoansWithoutClientsJobTrigger</name> 
      <group>MyJobs</group> 
      <description>A description</description> 
      <job-name>DeleteLoansWithoutClientsJob</job-name> 
      <job-group>MyJobs</job-group> 
      <cron-expression>0 0/1 * * * ?</cron-expression> 
     </cron> 
    </trigger> 
</job> 

ответ

1

Проблема в том, что вы указываете Виндзор на конфигурацию Quartz.NET ле.

Существует две отдельные конфигурации: Windsor и Quartz.NET. Windsor обычно конфигурируется с кодом в настоящее время (т. Е. Свободно конфигурируется), хотя он по-прежнему поддерживает конфигурацию XML. Однако средство Quartz.NET в настоящее время не поддерживает конфигурацию кода, вам нужно использовать конфигурацию XML Windsor (по крайней мере для этого, другие компоненты/объекты могут все еще быть настроены с помощью кода). Затем есть Quartz.NET, обычно настраиваемый через внешний файл quartz_jobs.xml.

Я рекомендую использовать Quartz.NET facility sample app в качестве ссылки. В частности, вот sample Windsor config и sample Quartz.NET config.

EDIT: если Quartz.NET заявляет, что не может найти файл quartz_jobs.xml в веб-приложении, вам нужно включить корневой веб-сайт в путь конфигурации: «~/quartz_jobs.xml» (вместо простого «quartz_jobs.xml» ")

+0

Когда я удалить «quartz_jobs.xml» из XmlInterpreter, она не работает ... он дает эту ошибку: «Файл с именем„“quartz_jobs.xml делает не существует." Любые мысли о том, почему это так? – Reaction21

+0

@ Reaction21: используйте пример приложения в качестве ссылки. –

+0

@ Reaction21 использует подходящий файл app.config/web.config с конфигурацией объекта, как показывает пример приложения? –

1

Я написал сообщение в блоге о том, как интегрировать Quartz.NET с контейнером IoC. В моем примере кода используется Castle Windsor.

В блоге пост можно найти здесь: http://thecodesaysitall.blogspot.com/2012/02/integrate-quartznet-with-your-favourite.html

+0

В течение 3 лет был создан проект для интеграции Quartz.NET и Windsor, см. Http://bugsquash.blogspot.com/2009/03/windsor-facility-for-quartznet.html и https: // github. com/castleprojectcontrib/QuartzNetIntegration. Он поддерживает гораздо больше, чем просто управление заданиями. Давайте избежим фрагментации усилий и работы над этим проектом. –