проблема тайм-аута сети? - PullRequest
0 голосов
/ 07 апреля 2011

Я не знаю, что это за ошибка .. Я больше не могу открыть свой сайт

Server Error in '/site' Application.
Timeout expired.  The timeout period elapsed prior to obtaining a connection from the pool.  This may have occurred because all pooled connections were in use and max pool size was reached. 

пожалуйста, помогите мне .. tnx

Ответы [ 2 ]

3 голосов
/ 07 апреля 2011

10 советов по написанию высокопроизводительных веб-приложений

Пул соединений

Настройка TCP-соединения между вашим веб-приложением и SQL Server™ может быть дорогой операцией.Разработчики в Microsoft уже некоторое время могут использовать преимущества пула соединений, что позволяет им повторно использовать соединения с базой данных.

Всегда закрывайте соединения, когда закончите с ними.Не доверяйте общеязыковой среде выполнения (CLR) для очистки и закрытия соединения для вас в заранее установленное время.CLR в конечном итоге уничтожит класс и принудительно закроет соединение, но у вас нет никакой гарантии, когда на самом деле произойдет сборка мусора на объекте.

Чтобы оптимально использовать пул соединений, есть пара правил, по которым нужно жить,Сначала откройте соединение, сделайте работу, а затем закройте соединение.Разрешается открывать и закрывать соединение несколько раз при каждом запросе, если необходимо (оптимально применять Совет 1), вместо того, чтобы держать соединение открытым и передавать его различными способами.Во-вторых, используйте ту же строку подключения (и ту же идентификацию потока, если вы используете встроенную аутентификацию).Если вы не используете одну и ту же строку подключения, например, настраиваете строку подключения в зависимости от пользователя, вошедшего в систему, вы не получите то же значение оптимизации, которое обеспечивается пулом подключений.И если вы используете интегрированную аутентификацию, выдавая себя за большой набор пользователей, ваш пул также будет гораздо менее эффективным.Счетчики производительности данных .NET CLR могут быть очень полезны при попытке отследить любые проблемы с производительностью, связанные с пулами соединений.Всякий раз, когда ваше приложение подключается к ресурсу, такому как база данных, запущенная в другом процессе, вы должны оптимизировать, сосредоточившись на времени, потраченном на подключение к ресурсу, времени, потраченном на отправку или получение данных, и на количество циклических переходов.Оптимизация любого типа технологического перехода в вашем приложении - это первое, с чего можно начать, чтобы добиться более высокой производительности.

3 голосов
/ 07 апреля 2011

Истекло время ожидания (что-то заняло больше времени, чем должно).В частности, период ожидания истек до получения соединения из пула соединений.Оказывается, это могло произойти, потому что все пул соединений были использованы и максимальный размер пула был достигнут.

(Вы используете пул соединений и, вероятно, не закрываете свои соединения. После того, как вы сделали с SqlConnectionили аналогичный объект подключения, вызовите .Close() на нем)

...