我正在运行使用OdbcCommand的ASP.NET 4.0应用程序。默认情况下,命令超时为30秒。当我运行我的网页时,我使用" SQL0666-SQL查询的查询错误超出了指定的时间限制或存储限制。"错误。执行读取器行在执行时不到2秒就会失败,远远低于命令超时。我添加了一行来将CommandTimeout设置为300秒并执行代码。执行读取器运行,整个页面在15秒内加载,再次远小于命令超时值。如果我运行更改我添加的行以将命令超时设置为30秒,代码错误在2秒内出现与上面相同的错误。查询本身只有大约15行,并且可以在几秒钟内在IDE中运行。
原始代码,错误时间不到两秒
using (IDataReader reader = this._commandExecuter.ExecuteReader(cmdData))
{
//do stuff
}
在15秒内运行的代码:
cmdData.CommandTimeout = 300;
using (IDataReader reader = this._commandExecuter.ExecuteReader(cmdData))
{
//do stuff
}
在不到2秒的时间内编码错误:
cmdData.CommandTimeout = 30;
using (IDataReader reader = this._commandExecuter.ExecuteReader(cmdData))
{
//do stuff
}
以前有人遇到过这个问题吗?除了将超时设置为有效的值之外,您是否找到了解决方案?
答案 0 :(得分:0)
我有时会遇到类似的问题,我们将超时设置为零来修复:
cmdData.CommandTimeout = 0;