使用SQL Server AdoJobStore配置Quartz.NET

Ves*_*kov 6 .net c# quartz-scheduler quartz.net

我在尝试让Quartz.NET与AdoJobStore一起工作时遇到了麻烦.这里没有其他问题似乎遇到了我的问题.我能够在没有AdoJobStore配置的情况下使其工作正常,但最终会保留所有内容,但是在尝试GetScheduler()我无法弄清楚时会遇到错误.

这是我的石英app.config部分:

<quartz>
   <add key="quartz.scheduler.instanceName" value="XxxDefaultQuartzScheduler"/>
   <add key="quartz.scheduler.instanceId" value="instance_one"/>

   <add key="quartz.threadPool.type" value="Quartz.Simpl.SimpleThreadPool, Quartz"/>
   <add key="quartz.threadPool.threadCount" value="10"/>
   <add key="quartz.threadPool.threadPriority" value="1"/>

   <add key="quartz.jobStore.type" value="Quartz.Impl.AdoJobStore.JobStoreTX, Quartz"/>
   <add key="quartz.jobStore.misfireThreshold" value="60000"/>      
   <add key="quartz.jobStore.dataSource" value="default"/>
   <add key="quartz.jobStore.driverDelegateType" value="Quartz.Impl.AdoJobStore.SqlServerDelegate, Quartz"/>        
   <add key="quartz.jobStore.lockHandler.type" value="Quartz.Impl.AdoJobStore.UpdateLockRowSemaphore, Quartz"/>
   <add key="quartz.jobStore.tablePrefix" value="QRTZ_"/>

   <add key="quartz.dataSource.default.connectionString" value="Server=(local);Database=Quartz;UID=XXXX;PWD=XXXX"/>
   <add key="quartz.dataSource.default.provider" value="SqlServer-20"/>
   <add key="quartz.dataSource.useProperties" value="true"/>
</quartz>
Run Code Online (Sandbox Code Playgroud)

这是相关的初始化代码:

var config = (NameValueCollection) ConfigurationManager.GetSection("quartz");

ISchedulerFactory factory = new StdSchedulerFactory(config);

// This is where an ArgumentOutOfRange exception occurs:
IScheduler scheduler = factory.GetScheduler();
Run Code Online (Sandbox Code Playgroud)

而我得到的错误是ArgumentOutOfRangeException:

长度不能小于零.\ r \n参数名称:长度

单步执行代码,我可以验证配置部分是否正确读取,并且我检查拼写错误和配置属性的大写错误.我已经验证了数据库是可以访问的connectionString.

在通过代码并在立即窗口中检查工厂变量时我注意到的一件事是它总是说"AllSchedulers:Count = 0" - 不确定是否因为我还没有实例化一个或者如果那是我的问题.试图给GetScheduler()该instanceName从配置-

factory.GetScheduler("XxxDefaultQuartzScheduler")
Run Code Online (Sandbox Code Playgroud)

也不起作用.

我错过了什么/做错了什么?请指教.

Ves*_*kov 9

好吧,想出了我自己的问题 - 属性石英.dataSource .useProperties应该是quartz.jobStore .useProperties