我有一个实现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>
答案 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 config和sample 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