Я запускаю приложение ASP.NET 4.0, которое использует OdbcCommand. По умолчанию время ожидания команды составляет 30 секунд. Когда я запускаю свою веб-страницу, мои ошибки запроса с «SQL0666 - SQL-запрос превышает указанный лимит времени или лимит хранения». ошибка. Строка Execute Reader выходит из строя менее чем за 2 секунды при выполнении, что намного меньше времени ожидания команды. Я добавил строку для установки CommandTimeout на 300 секунд и выполнил код. Execute Reader запускается, и вся страница загружается за 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
}
Кто-нибудь сталкивался с этой проблемой раньше? Нашли ли вы решение, отличное от установки тайм-аута на значение, которое работает?