quartz.net von config xml in asp.net

Kann mir jemand raten was ich falsch mache. Ich versuche, qurtz so einzurichten, dass es beim Start eine XML-Konfigurationsdatei liest. In der Datei befindet sich ein Job, der meine Klasse "HelloEmail_Job.cs" aktiviert (sie wurde ordnungsgemäß erstellt und erweitert IJob um die Logik in der Methode "execute"). Das XML hat auch einen Cron-Trigger für den Job, der jede Minute ausgelöst wird (nur zum Testen).

aber alles läuft fehlerfrei an, aber der job wird nie ausgelöst. Ich bin sicher, dass ich falsch konfiguriere

Ich habe einen Singleton, der die Generierung meines Schedulers verwaltet. Der Scheduler startet beim Start meiner App (in der Datei global.asax).

<code>    NameValueCollection properties = new NameValueCollection();
    properties["quartz.scheduler.instanceName"] = "RemoteServer";

    ////// set thread pool info
    properties["quartz.threadPool.type"] = "Quartz.Simpl.SimpleThreadPool, Quartz";
    properties["quartz.threadPool.threadCount"] = "5";
    properties["quartz.threadPool.threadPriority"] = "Normal";

    properties["quartz.jobStore.type"] = "Quartz.Impl.AdoJobStore.JobStoreTX, Quartz";
    properties["quartz.jobStore.useProperties"] = "true";
    properties["quartz.jobStore.dataSource"] = "default";
    properties["quartz.jobStore.tablePrefix"] = "QRTZ_";
    properties["quartz.jobStore.lockHandler.type"] = "Quartz.Impl.AdoJobStore.UpdateLockRowSemaphore, Quartz";

    properties["quartz.dataSource.default.connectionString"] = "Data Source=CRAIG-PC\\SQLEXPRESS;Initial Catalog=MCWdb;User ID=sa;Password=mastercrud;";
    properties["quartz.dataSource.default.provider"] = "SqlServer-20";

    // job initialization plugin handles our xml reading, without it defaults are used
    properties["quartz.plugin.xml.type"] = "Quartz.Plugin.Xml.XMLSchedulingDataProcessorPlugin, Quartz";
    properties["quartz.plugin.xml.fileNames"] = "~/quartz_jobs.xml";

    ISchedulerFactory sf = new StdSchedulerFactory(properties);
    _sched = sf.GetScheduler();
</code>

Meine Datei quartz_jobs.xml sieht so aus

<code>        <?xml version="1.0" encoding="UTF-8"?>

        <job-scheduling-data xmlns="http://quartznet.sourceforge.net/JobSchedulingData"
                xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
                        version="2.0">

          <processing-directives>
            <overwrite-existing-data>true</overwrite-existing-data>
          </processing-directives>

          <schedule>        
                <job> 
                  <job-detail> 
                    <name>MyJob</name> 
                    <group>MyJobs</group> 
                    <description>sends out a test email</description>
                      <job-type>HelloEmail_Job</job-type>
                      <volatile>false</volatile> 
                    <durable>true</durable> 
                    <recover>false</recover> 
                    <job-data-map> 
                      <entry> 
                        <key>Body</key> 
                        <value>Hello From your website!!!!!!!!</value> 
                      </entry> 
                    </job-data-map> 
                  </job-detail> 
                  <trigger> 
                    <cron> 
                      <name>MyJobTrigger</name> 
                      <group>MyJobs</group> 
                      <description>A description</description> 
                      <job-name>MyJob</job-name> 
                      <job-group>MyJobs</job-group> 
                      <cron-expression>0 0/1 * 1/1 * ? *</cron-expression> 
                    </cron> 
                  </trigger> 
                </job>
            </schedule>

        </job-scheduling-data>
</code>

Ich weiß, dass der Zeitplan für Ad-hoc-Jobs mit einem einfachen Auslöser korrekt ausgeführt wird, da er perfekt funktioniert, wenn meine App sie erstellt und dynamisch plant. aber ich möchte die Logik wiederholbar (durch ein Cron) und konfigurierbar durch eine XML

Mein Bauchgefühl ist, dass der Wert JOB_TYPE falsch ist.

Vielen Dank

Antworten auf die Frage(1)

Ihre Antwort auf die Frage