Я использую строку соединения SQL с SqlClient. SqlConnection и указание Connection Timeout = 5 в строке, но он все еще ждет 30 секунд, прежде чем вернуть ошибку. Как мне заставить его сдаться и вернуться быстрее? Я нахожусь в быстрой локальной сети и не хочу ждать 30 секунд. Серверам, которые не включены, требуется 30 секунд для сбоя. Это просто быстрая служебная программа, которая всегда будет запускаться только в этой локальной сети.
Редактировать : Извините, если мне было неясно. Я хочу, чтобы SqlConnection.Open работал быстрее. Надеюсь, что это можно сделать из того факта, что серверы, которые я хочу отключить быстрее, отключены.
Редактировать : Кажется, что настройка иногда дает сбой. Как будто он знает IP-адрес сервера и использует TCP / IP для связи с ним (не локально), но не может связаться с SQL Server по этому адресу? Я не уверен, что шаблон, но я не Я не вижу проблемы при локальном соединении с остановленным SQL Server, и я не вижу ее при попытке подключиться к несуществующему серверу. Я видел это при попытке связаться с сервером, где брандмауэр Windows 2008 блокирует SQL Server.
Время ожидания команды и время ожидания подключения — это две разные вещи.
SqlConnection.ConnectionTimeout — это «время (в секундах) ожидания открытия соединения. Значение по умолчанию — 15 секунд». Используется только при вызове метода SqlConnection.Open().
SqlCommand.CommandTimeout делает то, что вы хотите.