1

シャープアーキテクチャを実装するAsp.netC#MVC3アプリケーションがあります。私は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

問題は、WindsorがQuartz.NET構成ファイルを指していることです。

WindsorとQuartz.NETの2つの別個の構成があります。Windsorは通常、現在はコード(つまり、流暢な構成)で構成されていますが、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 に答える
1

Quartz.NETをIoCコンテナと統合する方法についてのブログ投稿を書きました。私のサンプルコードはCastleWindsorを使用しています。

ブログ投稿はここにあります:http://thecodesaysitall.blogspot.com/2012/02/integrate-quartznet-with-your-favourite.html

于 2012-02-29T09:04:38.520 に答える