Назад | Перейти на главную страницу

Истекло время ожидания: пул подключений

Вот ошибка, которую мы получаем. Мы переместили серверы приложений и db на x64 с 32-разрядной версии. На серверах установлен пакет обновления 2 Framework 2.0.

Истекло время ожидания. Период таймаута истек до получения соединения из пула. Это могло произойти из-за того, что все соединения пула использовались и был достигнут максимальный размер пула.

Эта ошибка, вероятно, означает, что вы не закрываете свои соединения ADO.Net. Просмотрите свой код и убедитесь, что все ваши объекты SqlConnection явно правильно удаляются в вашем коде ASP.Net. Вы можете сделать это с помощью блоков в вашем коде VB или C #. Конструкция using автоматически закрывает и удаляет ваше соединение, когда оно выходит за рамки ...

// C# example
using (var conn = new SqlConnection(myConnectString))
{
    conn.Open();

    // your data access code here
}

... или ...

' VB example
Using conn As var = New SqlConnection(myConnectString)

    conn.Open()

    ' your data access code here

End Using

Вы указываете время ожидания подключения = в строке подключения? Если нет, вы можете добавить это и указать 300 секунд, чтобы узнать, нужно ли просто больше времени. Я считаю, что по умолчанию 15 секунд.

http://msdn.microsoft.com/en-us/library/system.data.sqlclient.sqlconnection.connectionstring.aspx

У моей группы были аналогичные проблемы, когда мы запустили довольно большую интеграцию веб-сервисов в нашу производственную среду. Мы не обнаружили случаев, когда соединения не закрывались, поэтому мы были вынуждены сделать вывод, что соединения действительно были необходимы. Я все же должен сказать, что мне кажется противным увеличивать максимальный размер пула соединений ... Чтобы сэкономить время на поиске в Google, вот точный способ его изменить:

<connectionStrings>
  <add name="ConnString" 
       connectionString="Data Source=IP; Initial Catalog=DBName;User ID=User;
       Password=Pass; Max Pool Size=200;" 
       providerName="System.Data.SqlClient" />
</connectionStrings>

Обратите внимание: "Максимальный размер пула = 200;"