我正在开发一个新的C#项目并需要一些帮助。
系统有一些使用Quartz api安排的工作,其中一个工作不再有效。
我尝试手动执行该方法并出现此错误
“超时已过期。操作完成前经过的超时时间或服务器没有响应。”
在这一行(调用catch {}):
TList<TbBooking> allBooks = DataRepository.TbBookingProvider.Find(bQuery);
变量bQuery有一个带有4200个id的查询和一些参数,比如1个月的周期,标志等。
我检查了SQL Timeout设置并且它是10分钟(默认值)但是在代码进入.Find()方法后几秒钟内出现消息(少于2分钟)但使用SQLMS查询执行得非常快
我正在考虑运行命令 sp_updatestats ,但我想先看看你的建议。
P.S。该项目正在使用代码匠,这个功能从2010年开始运作。
答案 0 :(得分:0)
我使用了sp_updatestats但它没有用。我为列创建了一个索引,但也没有用。所以我发现ProviderBase类中的一个名为defaultCommandTimeout的属性设置为30秒。我在app.config文件中将其更改为120,然后查询再次运行。