Quartz.net 3.0.6 与 system.data.sqlite 1.0.109,没有提供程序“SQLite-10”的元数据信息

问题描述 投票:0回答:2

我正在使用 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>
c# quartz.net
2个回答
3
投票

Quartz 的配置在 3.x 中略有变化。像 2.x 中一样,设置提供程序时没有版本。只需使用这个:

<add key="quartz.dataSource.default.provider" value="SQLite" />

所有提供商都可以在这里看到。


0
投票

谢谢!就我而言,我只需要从“.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();
© www.soinside.com 2019 - 2024. All rights reserved.