2

我正在一个新的 C# 项目中工作,需要一些帮助。

系统使用 Quartz api 安排了一些作业,其中一个不再工作。

我尝试手动执行该方法并收到此错误

“超时已过。在操作完成之前超时时间已过或服务器没有响应。”

在这一行中(调用了 catch{}):

TList<TbBooking> allBooks = DataRepository.TbBookingProvider.Find(bQuery);

变量 bQuery 有一个带有 4200 个 id 的查询和一些参数,如 1 个月期间、标志等。

我检查了 SQL 超时设置,它是 10 分钟(默认值),但在代码输入 .Find() 方法(不到 2 分钟)后几秒钟内就会出现消息,但使用 SQLMS 查询执行得非常快。

我正在考虑运行命令sp_updatestats但我想先看看你的建议。

ps 该项目正在使用 codesmith,此功能自 2010 年以来一直在工作。

4

1 回答 1

0

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

于 2013-12-12T13:29:41.820 回答