我花了一天的较好时间试图让Quartz.net在Azure工作者角色中运行。它使用SQL Azure实例作为其持久存储。Azure中的Quartz.net:删除作业时“不支持聚簇索引的表”不支持
我得配置是下面这样的:
quartz.jobStore.type=Quartz.Impl.AdoJobStore.JobStoreTX, Quartz
quartz.jobStore.driverDelegateType=Quartz.Impl.AdoJobStore.SqlServerDelegate, Quartz
quartz.jobStore.tablePrefix=QRTZ_
quartz.jobStore.dataSource=myDS
quartz.dataSource.myDS.connectionString=Server=xxx,1433;Database=xxx;User [email protected];Password=xxx;Trusted_Connection=False;Encrypt=True;Connection Timeout=30;
quartz.dataSource.myDS.provider=SqlServer-20
创建模式,我用的是排在Quartz.net zip文件的脚本。其实,我想他们两个:
他们在Quartz.NET-2.2.1.zip我下载。我必须删除第一个脚本的ALTER TABLE
语句中的ON [PRIMARY]
以使其起作用;否则它会抱怨此版本的SQL Server不支持“文件组引用和分区方案”。
第二个没有修改就工作。
“无法删除触发:没有聚集索引的表不支持
无论剧本我用它来创建架构,Quartz.net当我尝试删除作业抛出一个错误这个版本的SQL Server,请创建一个聚集索引,然后重试。“
我可以添加作业(我可以看到要添加到数据库的行),但是每当我尝试删除一行时,Quartz.net都会抛出一个合适的结果。
我能做些什么来解决这个问题?
谢谢!
发布的脚本。就我个人而言,我会使用sql profiler在本地运行它(不是天蓝色),以查看在Quartz上调用delete函数时会发生什么情况,以查看正在使用的实际sql。如上所述,Azure不允许在没有聚集索引的情况下创建表,因此您需要了解究竟发生了什么。 – ojf
看看Gaurav去年在Quartz上运行的工作(表格存储而不是sql)http://gauravmantri.com/2013/01/23/building-a-simple-task-scheduler-in-windows -azure/ –
我将脚本添加到原始问题中。 –