1

我有一个实现 Sharp 架构的 Asp.net C# MVC 3 应用程序。几天来,我一直试图让 Quartz.net 设置并与 Castle Windsor 很好地合作,但没有任何运气。据我所知,我已经正确设置了所有内容,但仍然存在问题。

在我的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>

4

2 回答 2

1

I've written a blog post on how to integrate Quartz.NET with an IoC container. My example code uses Castle Windsor.

The blog post can be found here: http://thecodesaysitall.blogspot.com/2012/02/integrate-quartznet-with-your-favourite.html

于 2012-02-29T09:04:38.520 回答
1

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

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

我建议使用Quartz.NET 工具示例应用程序作为参考。特别是,这里是示例 Windsor 配置示例 Quartz.NET 配置

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

于 2012-02-02T23:44:00.857 回答