我正在使用 app.config 中的配置部分,如下所示。 .net 运行时是 4.6.2。运行可执行文件后,我得到了 System.ArgumentOutOfRangeException:提供程序“SQLite-10”没有元数据信息参数名称:providerName 可能出现的问题是什么? TIA
<quartz>
<add key="quartz.scheduler.instanceName" value="MyScheduler" />
<add key="quartz.scheduler.instanceId" value="Quartz" />
<add key="quartz.threadPool.type" value="Quartz.Simpl.SimpleThreadPool, Quartz" />
<add key="quartz.threadPool.threadCount" value="10" />
<add key="quartz.jobStore.type" value="Quartz.Impl.AdoJobStore.JobStoreTX, Quartz" />
<add key="quartz.jobStore.misfireThreshold" value="60000" />
<add key="quartz.jobStore.lockHandler.type" value="Quartz.Impl.AdoJobStore.UpdateLockRowSemaphore, Quartz" />
<add key="quartz.jobStore.useProperties" value="true" />
<add key="quartz.jobStore.dataSource" value="default" />
<add key="quartz.jobStore.tablePrefix" value="QRTZ_" />
<add key="quartz.jobStore.driverDelegateType" value="Quartz.Impl.AdoJobStore.SQLiteDelegate, Quartz" />
<add key="quartz.dataSource.default.provider" value="SQLite-10" />
<add key="quartz.dataSource.default.connectionString" value="Data Source=..\LocalData\scheduler.db;Version=3;" />
<runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="System.Data.SQLite" publicKeyToken="db937bc2d44ff139" culture="neutral" />
<bindingRedirect oldVersion="1.0.88.0" newVersion="1.0.109.0" />
</dependentAssembly>
</assemblyBinding>
</runtime>
Quartz 的配置在 3.x 中略有变化。像 2.x 中一样,设置提供程序时没有版本。只需使用这个:
<add key="quartz.dataSource.default.provider" value="SQLite" />
所有提供商都可以在这里看到。
谢谢!就我而言,我只需要从“.UseMicrosoftSqlLite”更改为“.UseSQLite”(以及区分大小写的连接和参数属性):
var properties = new NameValueCollection();
_scheduler = SchedulerBuilder.Create(properties)
// default max concurrency is 10
.UseDefaultThreadPool(x => x.MaxConcurrency = 5)
// this is the default
// .WithMisfireThreshold(TimeSpan.FromSeconds(60))
.UsePersistentStore(x =>
{
x.UseProperties = false;
x.PerformSchemaValidation = false;
x.UseSQLite(@$"Data Source={HttpContext.Current.Server.MapPath("/")}Helpers/businesslab.db");
x.UseJsonSerializer();
})
.BuildScheduler().Result;
_scheduler.Start();