You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

.NET5 Worker Service集成Quartz.Net使用SQLite持久化提示无QRTZ_LOCKS表

问题解决方法

你遇到的报错是因为Quartz.Net默认不会自动创建持久化所需的系统表,缺少自动建表的相关配置,修正方案如下:

1. 新增自动建表配置

在UsePersistentStore配置块中添加AutoCreateSchema = true配置即可,修改后完整代码如下:

services.AddQuartz(q =>
{
    // Use a Scoped container to create jobs. I'll touch on this later
    q.UseMicrosoftDependencyInjectionJobFactory();

    q.UsePersistentStore(c =>
    {
        c.UseSQLite(@"URI=file:MyDatabase.sqlite;Version=3;");
        // 新增此行配置,启动时自动校验并创建Quartz所需的调度系统表
        c.AutoCreateSchema = true;
        c.UseJsonSerializer();
        //c.UseBinarySerializer(); This option didn't make a difference 
    });
});

2. 额外说明

  • 首次启动完成表创建后,可将该配置改为false,避免每次启动都执行表结构校验,降低不必要的启动开销
  • 若生产环境不允许自动建表权限,也可以手动执行Quartz.Net官方提供的SQLite建表脚本,提前创建好所有QRTZ_开头的系统表后再启动服务
  • 请确保运行程序的账户对SQLite文件所在目录拥有读写权限,否则会出现建表失败的问题

内容的提问来源于stack exchange,提问作者Travis Pettry

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.25 16:36:00