Quartz.net安装程序抛出错误:“配置解析器遇到<作业>”</job>

时间:2012-02-02 23:25:10

标签: castle-windsor quartz-scheduler quartz.net sharp-architecture

我有一个实现Sharp架构的Asp.net C#MVC 3应用程序。我一直试图让Quartz.net在没有任何运气的情况下安装和使用Castle Windsor几天。根据我所知,我已正确设置所有内容,但仍然存在问题。

在我的 Global.cs 文件中,创建我的Container并尝试注册石英作业:

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>

2 个答案:

答案 0 :(得分:1)

问题是,你将Windsor指向Quartz.NET配置文件。

有两种不同的配置:Windsor和Quartz.NET。 Windsor现在通常配置代码(即流畅的配置),尽管它仍然支持XML配置。但是,Quartz.NET工具目前不支持代码配置,您必须使用Windsor的XML配置(至少为此,其他组件/设施仍可通过代码配置)。然后是Quartz.NET,通常通过外部quartz_jobs.xml文件配置。

我建议使用Quartz.NET facility sample app作为参考。特别是,这是sample Windsor configsample Quartz.NET config

编辑:如果Quartz.NET说它在Web应用程序中找不到quartz_jobs.xml,则需要在配置路径中包含web根目录:“〜/ quartz_jobs.xml”(而不是plain“quartz_jobs.xml” )

答案 1 :(得分:1)

我写了一篇关于如何将Quartz.NET与IoC容器集成的博客文章。我的示例代码使用Castle Windsor。

可以在此处找到博文:http://thecodesaysitall.blogspot.com/2012/02/integrate-quartznet-with-your-favourite.html