Сведения о вопросе

FromRussia

15:09, 27th August, 2020

Теги

Тайм-аут не соблюдается в строке подключения

Просмотров: 510   Ответов: 2

У меня есть долго работающий оператор SQL, который я хочу запустить, и независимо от того, что я помещаю в предложение "timeout=" моей строки подключения, он всегда заканчивается через 30 секунд.

Я просто использую SqlHelper.ExecuteNonQuery() , чтобы выполнить его, и позволяю ему заботиться об открытии соединений и т. д.

Есть ли что-то еще, что может переопределить мой тайм-аут или заставить сервер sql игнорировать его? Я запустил profiler над запросом, и trace не выглядит по-другому, когда я запускаю его в management studio, а не в своем коде.

Management studio завершает запрос примерно за минуту, но даже с тайм-АУ, установленным на 300 или 30000, мой код все равно выходит через 30 секунд.



  Сведения об ответе

DO__IT

04:50, 29th August, 2020

Что вы используете для установки таймаута в строке подключения? Из памяти это "ConnectionTimeout" и влияет только на время, необходимое для фактического подключения к серверу.

Каждая отдельная команда имеет отдельный "CommandTimeout", который будет тем, что вы ищете. Хотя не уверен, как SqlHelper реализует это.


  Сведения об ответе

P_S_S

00:18, 11th August, 2020

В дополнение к таймауту в строке подключения попробуйте использовать свойство timeout команды SQL. Ниже приведен пример C#, использующий класс SqlCommand. Его эквивалент должен быть применим к тому, что вы используете.

SqlCommand command = new SqlCommand(sqlQuery, _Database.Connection);
command.CommandTimeout = 0;
int rows = command.ExecuteNonQuery();


Ответить на вопрос

Чтобы ответить на вопрос вам нужно войти в систему или зарегистрироваться