ben yaşıyorum sorun ile Yapılandırma Quartz.NET bir AdoJobStore ile çalışmak Quartz.NET almaya çalışırken. Buradaki diğer soruların hiçbiri benim olduğum problemin içinde görünmüyor. Ben AdoJobStore yapılandırması olmadan iyi çalışıyor, ancak sonunda her şeyi devam etmek istiyorum başardı, ancak ben anlayamıyorum GetScheduler()
çalışırken bir hata alıyorum. ArgumentOutOfRangeException
olduğunuSQL Server AdoJobStore
var config = (NameValueCollection) ConfigurationManager.GetSection("quartz");
ISchedulerFactory factory = new StdSchedulerFactory(config);
// This is where an ArgumentOutOfRange exception occurs:
IScheduler scheduler = factory.GetScheduler();
Ve alıyorum hata:
Uzunluk az olamaz
İşte benim kuvars
app.config
bölüm var:<quartz> <add key="quartz.scheduler.instanceName" value="XxxDefaultQuartzScheduler"/> <add key="quartz.scheduler.instanceId" value="instance_one"/> <add key="quartz.threadPool.type" value="Quartz.Simpl.SimpleThreadPool, Quartz"/> <add key="quartz.threadPool.threadCount" value="10"/> <add key="quartz.threadPool.threadPriority" value="1"/> <add key="quartz.jobStore.type" value="Quartz.Impl.AdoJobStore.JobStoreTX, Quartz"/> <add key="quartz.jobStore.misfireThreshold" value="60000"/> <add key="quartz.jobStore.dataSource" value="default"/> <add key="quartz.jobStore.driverDelegateType" value="Quartz.Impl.AdoJobStore.SqlServerDelegate, Quartz"/> <add key="quartz.jobStore.lockHandler.type" value="Quartz.Impl.AdoJobStore.UpdateLockRowSemaphore, Quartz"/> <add key="quartz.jobStore.tablePrefix" value="QRTZ_"/> <add key="quartz.dataSource.default.connectionString" value="Server=(local);Database=Quartz;UID=XXXX;PWD=XXXX"/> <add key="quartz.dataSource.default.provider" value="SqlServer-20"/> <add key="quartz.dataSource.useProperties" value="true"/> </quartz>
Ve burada alakalı başlatma kodu sıfırdan. \ r \ nParametre adı: uzunluk
Ben yapılandırma bölümünü kontrol edebilirsiniz kod üzerinden Stepping
doğru okunuyor ve ben iki katına ve üçlü imla hataları ve yapılandırma özelliklerinin hatalı harf için kontrol etti. Veritabanına, sahip olduğum connectionString
ile erişilebildiğini doğruladım.
Koddan çıkarken ve Anlık Pencerede fabrika değişkenini incelerken fark ettiğim bir şey, her zaman "AllSchedulers: Count = 0" yazıyor olmasıdır; bu benim sorunumun bir parçasıysa. yapılandırmasından GetScheduler()
instanceName
vermeye çalışıyor -
factory.GetScheduler("XxxDefaultQuartzScheduler")
da çalışmıyor. Nerede yanlış yapıyorum/ne eksik
? Lütfen tavsiye.
Bu soruyu ziyaret eden herkes için bir kenara, "quartz.jobStore.lockHandler.type" özelliği kaldırılmalı, çünkü kuvars daha az etkili bir kilitleme stratejisi kullanmaya zorlar. senin günlüklerin. –