Истекло время ожидания: пул подключений
Вот ошибка, которую мы получаем. Мы переместили серверы приложений и базы данных на x64 из 32-битной системы. Framework 2.0 с пакетом обновления 2 установлен на серверах.
Тайм-аут истек. Время ожидания истекло до получения соединения из пула. Это могло произойти из-за того, что все пулы подключений использовались и был достигнут максимальный размер пула.
3 ответа
Вероятно, эта ошибка означает, что вы не закрываете свои соединения 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
У моей группы были похожие проблемы, когда мы запустили довольно большую интеграцию Web-сервисов в нашу производственную среду. Мы не обнаружили случаев, когда соединения не были закрыты, поэтому мы были вынуждены сделать вывод, что эти соединения действительно были необходимы. Я все еще должен сказать, что он чувствует себя не так, как нужно, чтобы увеличить максимальный размер пула соединений... Чтобы сэкономить 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;"
Вы указываете время ожидания подключения = в строке подключения? Если нет, вы можете добавить это и указать 300 секунд, чтобы узнать, нужно ли ему просто больше времени. Я считаю, что по умолчанию 15 секунд.
http://msdn.microsoft.com/en-us/library/system.data.sqlclient.sqlconnection.connectionstring.aspx