свойство тайм-аута соединения в строке соединения игнорируется - PullRequest
7 голосов
/ 15 февраля 2010

Я создаю приложение на C #. Я использую строку подключения, например:

DSN=SomeDataSource; Trusted Connection = yes; Uid=SomeId; pwd=somePwd; Connection Timeout=x

Но независимо от того, какое значение я установил как x (Connection Timeout = x), поставив точку останова, я вижу, что у моего DbConnection объекта ConnectionTimeout всегда есть значение по умолчанию 15.

Я что-то здесь упускаю?

Спасибо.

Ответы [ 3 ]

16 голосов
/ 19 февраля 2010

Connection Timeout в ConnectionString только контролирует время ожидания для соединения. Если вам нужно увеличить время ожидания ваших команд, используйте свойство CommandTimeout SqlCommand.

1 голос
/ 17 октября 2012

Я не вижу, что вы указываете, по крайней мере, когда я тестирую сценарий, используя SqlConnectionStringBuilder .

Свойство ConnectionTimeout соединения соответствует ConnectTimeout установлен на компоновщик.Я использовал 5 , 20 и 120 в качестве значений, и все они были установлены для соединения.

с использованием System.Data.SqlClient;

var builder = new SqlConnectionStringBuilder();

builder.ApplicationName     = "My Demo App";
builder.ConnectTimeout      = 5;
builder.DataSource          = "(local)";
builder.InitialCatalog      = "My Database";
builder.IntegratedSecurity  = true;

using(var connection = new SqlConnection(builder.ConnectionString))
{
    Console.WriteLine("Connection Timeout: {0}", connection.ConnectionTimeout);
}

Если вы не имеете дело с SQL, вы можете также использовать DbConnectionStringBuilder или один из его подтипов.В целом, я считаю, что безопаснее всего строить строку подключения программно, используя один из доступных сборщиков, чтобы вы могли избежать неправильного форматирования строки подключения, которую вы будете использовать для создания соединений.

0 голосов
/ 04 июня 2015

Да, 15 минимум, в зависимости от того, что вы делаете. Вероятно, вещь для поставщика. Я даже обнаружил, что при попытке использовать менее 15 (с некоторыми сторонними элементами управления) с помощью собственного клиента SQL вместо этого я получаю бесконечное время ожидания. Тьфу. Когда я установил на 15 или выше, он ведет себя как ожидалось.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...