Я знаю, что вы можете установить параметр Connection Timeout в ConnectionString, однако он устанавливает минимальное время ожидания, а не максимальное.
Мое приложение работает с удаленной базой данных, и ему необходимо затемнить экран серым цветом и дождаться восстановления соединения, если оно было потеряно. Я уже делаю это нормально, но иногда, когда соединение потеряно, требуется более 30 секунд, чтобы понять, что соединение потеряно, даже при минимальном значении параметра Connetion Timeout.
Я обнаружил, что соединение потеряно, потому что у меня есть поток, выполняющий опрос базы данных каждые 0,5 секунды, и я жду, пока он не выдаст исключение «Произошла ошибка, связанная с сетью или конкретным экземпляром, при установлении соединения с SQL Server».
Я хочу знать, есть ли хороший способ установить максимальный тайм-аут или другую альтернативу, чтобы быстрее обнаружить потерю соединения.
Изменить: я не знал, что также существует CommandTimeout. Он не работает идеально, но работает лучше. Его нужно устанавливать для каждого нового объекта DataContext, но это нормально. Я установил значение X, и, кажется, всегда требуется X + 5 секунд, чтобы вызвать исключение тайм-аута.
One connection per command
, меньшее значение обоих выигрышей? - person DrCopyPaste   schedule 19.12.2013Open()
вызова. Это вообще не относится к командам. CommandTimeout применяется к вызовамExecute
илиExecuteScalar
. Это вообще не относится к соединениям. - person Ben   schedule 19.12.2013