3

当我查看基于 Windows 服务的 Quartz.NET 项目的事件日志时,我得到:

Connection-Transaction Pair cannot be null

parameter name: cth

当然,我用谷歌搜索,但没有找到任何关于异常的文档。有谁知道这意味着什么或如何解决它?

提前致谢。

编辑:这是扩展(但仍不完整)异常/堆栈跟踪:

Service cannot be started. Parameters: refire = False, unscheduleFiringTrigger = False, unscheduleAllTriggers = False Quartz.JobExecutionException: System.ArgumentNullException: Connnection-transaction pair cannot be null Parameter name: cth at Quartz.Impl.AdoJobStore.JobStoreSupport.CheckNotZombied(ConnectionAndTransactionHolder cth) in c:\Work\OpenSource\quartznet\src\Quartz\Impl\AdoJobStore\JobStoreSupport.cs:line 3487 at Quartz.Impl.AdoJobStore.JobStoreSupport.RollbackConnection(ConnectionAndTransactionHolder cth) in c:\Work\OpenSource\quartznet\src\Quartz\Impl\AdoJobStore\JobStoreSupport.cs:line 3300 at Quartz.Impl.AdoJobStore.JobStoreSupport.ExecuteInNonManagedTXLock(String lockName, Func2 txCallback) in c:\Work\OpenSource\quartznet\src\Quartz\Impl\AdoJobStore\JobStoreSupport.cs:line 3467 at Quartz.Impl.AdoJobStore.JobStoreTX.ExecuteInLock(String lockName, Func2 txCallback) in c:\Work\OpenSource\quartznet\src\Quartz\Impl\AdoJobStore\JobStoreTX.cs:line 76 at Quartz.Impl.AdoJobStore.JobStoreSupport.Store...

另外,有没有办法获得完整的堆栈跟踪?我无法以编程方式执行此操作,因为它甚至在服务启动之前就失败了。

4

3 回答 3

5

我有同样的问题,也尝试了 Sanjay10 提出的错误修复,但没有奏效。这只是将问题推迟到另一个位置。

如果 Quartz 尝试回滚连接,则会出现此错误,因为在尝试创建与数据库的有效连接时发生了一些错误。我的情况是这不起作用,因为我的数据库未配置为允许远程连接(是本地仓促设置的测试数据库)。切换到另一个(经过充分测试的)数据库为我解决了这个问题。

所以我的建议是,它要么与我遇到的问题相同,要么与其他一些与数据库相关的问题(比如分配的用户缺少一些权限)。可能尝试另一个数据库或给分配的用户更多权限

于 2012-08-31T09:54:09.800 回答
4

放置Debugger.Launch();在 Windows 服务代码的第一行上方,这样当您启动服务时,您将能够单步执行代码并找到引发异常的确切代码行...

于 2012-05-30T20:10:51.900 回答
1

获取最新的 Quartz.net 库。他们已经修复了这个错误。

这是为此设置的更改

https://github.com/quartznet/quartznet/commit/e1a136cf5ac5c525cf0b9514e190e6b1132ffe48#src/Quartz/Impl/AdoJobStore/JobStoreSupport.cs

于 2012-08-16T18:59:36.670 回答