SQL超时在C#代码中过期

时间:2013-12-11 19:40:09

标签: codesmith

我正在开发一个新的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年开始运作。

1 个答案:

答案 0 :(得分:0)

我使用了sp_updatestats但它没有用。我为列创建了一个索引,但也没有用。所以我发现ProviderBase类中的一个名为defaultCommandTimeout的属性设置为30秒。我在app.config文件中将其更改为120,然后查询再次运行。