【发布时间】:2017-10-12 18:29:08
【问题描述】:
尝试在我的 Mac OSX Visual Studio 上编译的 .NET Core 2.0 控制台应用程序上使用具有以下配置的 Quartz 调度程序 3.0.0-alpha3 和 System.Data.Sqlite.Core (1.0.105.2) 使用 Sqlite:
NameValueCollection props = new NameValueCollection {
{ "quartz.threadPool.type", "Quartz.Simpl.SimpleThreadPool, Quartz" },
{ "quartz.threadPool.threadCount", "10" },
{ "quartz.jobStore.type", "Quartz.Impl.AdoJobStore.JobStoreTX, Quartz" },
{ "quartz.jobStore.misfireThreshold", "60000" },
{ "quartz.jobStore.lockHandler.type", "Quartz.Impl.AdoJobStore.UpdateLockRowSemaphore, Quartz" },
{ "quartz.jobStore.useProperties", "true" },
{ "quartz.jobStore.dataSource", "default" },
{ "quartz.jobStore.tablePrefix", "QRTZ_" },
{ "quartz.jobStore.driverDelegateType", "Quartz.Impl.AdoJobStore.SQLiteDelegate, Quartz" },
{ "quartz.dataSource.default.provider", "SQLite-10" },
{ "quartz.dataSource.default.connectionString", "Data Source=quartznet.db;Version=3;" }
};
实际行为
Quartz.SchedulerException:无法初始化数据源:SqliteDS ---> System.ArgumentOutOfRangeException:没有提供程序“SQLite-10”的元数据信息参数名称:providerName
在 Quartz.Impl.AdoJobStore.Common.DbProvider.GetDbMetadata(String providerName) 在 C:\projects\quartznet-6fcn8\src\Quartz\Impl\AdoJobStore\Common\DbProvider.cs:line 118 在 C:\projects\quartznet-6fcn8\src\Quartz\Impl\AdoJobStore\Common\DbProvider.cs:line 74 中的 Quartz.Impl.AdoJobStore.Common.DbProvider..ctor(String dbProviderName, String connectionString) 在 C:\projects\quartznet-6fcn8\src\Quartz\Impl\StdSchedulerFactory.cs:line 614 中的 Quartz.Impl.StdSchedulerFactory.d__65.MoveNext() --- 内部异常堆栈跟踪结束 --- 在 C:\projects\quartznet-6fcn8\src\Quartz\Impl\StdSchedulerFactory.cs:line 623 中的 Quartz.Impl.StdSchedulerFactory.d__65.MoveNext() --- 从先前抛出异常的位置结束堆栈跟踪 --- 在 System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() 在 System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(任务任务) 在 Quartz.Impl.StdSchedulerFactory.d__69.MoveNext() 在 C:\projects\quartznet-6fcn8\src\Quartz\Impl\StdSchedulerFactory.cs:line 1118 --- 从先前抛出异常的位置结束堆栈跟踪 --- 在 System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() 在 System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(任务任务) 在 System.Runtime.CompilerServices.TaskAwaiter`1.GetResult() 在 /Users/jakesmith/Projects/BackgroundProcessingWithQuartz/BackgroundProcessingWithQuartz/BackgroundProcessingWithQuartz/Program.cs:第 44 行中的 BackgroundProcessingWithQuartz.Program.d__1.MoveNext() [参见嵌套异常:System.ArgumentOutOfRangeException:提供者'SQLite-10 没有元数据信息' 参数名称:providerName 在 C:\projects\quartznet-6fcn8\src\Quartz\Impl\AdoJobStore\Common\DbProvider.cs:line 118 中的 Quartz.Impl.AdoJobStore.Common.DbProvider.GetDbMetadata(String providerName) 在 C:\projects\quartznet-6fcn8\src\Quartz\Impl\AdoJobStore\Common\DbProvider.cs:line 74 中的 Quartz.Impl.AdoJobStore.Common.DbProvider..ctor(String dbProviderName, String connectionString) 在 Quartz.Impl.StdSchedulerFactory.d__65.MoveNext() 在 C:\projects\quartznet-6fcn8\src\Quartz\Impl\StdSchedulerFactory.cs:line 614
我错过了什么?一切都是通过 NuGet 在我的 Visual Studio for Mac 上安装的。另外,当 dll 实际在 Mac 上运行时,为什么还要引用 C 驱动器。请帮忙。
【问题讨论】:
标签: sqlite .net-core quartz.net