проблема относительно максимального размера пула в asp.net - PullRequest
1 голос
/ 07 июня 2011

Я работал над небольшим модулем файлового менеджера в проекте, где список папок отображается в виде дерева. Я сделал все это в JavaScript. Каждый раз, когда я щелкаю узел, список данных выбирается в хранилище данных и заполняется во внешнем интерфейсе. Но когда я развертываю приложение в IIS, после примерно 18 последующих щелчков IIS останавливается, и мне приходится переустанавливать его снова. При проверке средства просмотра событий я получил следующую ошибку

Тип исключения: InvalidOperationException Сообщение об исключении: истекло время ожидания. Время ожидания истекло до получения соединения из пула. Это могло произойти из-за того, что все пулы подключений использовались и был достигнут максимальный размер пула.

Поэтому в строке подключения в web.config я установил пул в True и максимальный размер пула в 200, и проблема была решена.

Но мне интересно, будет ли хорошей практикой использовать размер пула соединений таким образом. Или как мы можем предотвратить открытие такого количества соединений. Спасибо!

Ответы [ 2 ]

6 голосов
/ 07 июня 2011

Я думаю, что происходит то, что вы не освобождаете неиспользованные ресурсы. В частности, вы обязательно должны вызывать Dispose() для всех объектов, связанных с базой данных, таких как SqlConnection, SqlDataReader и т. Д. Или, что еще лучше, оберните их в using заявления.

1 голос
/ 07 июня 2011

Пример строки подключения для SQL Server:

"Data Source=(local);Initial Catalog=pubs;User ID=sa;Password=;Max Pool Size=75;Min Pool Size=5;"

Вам может помочь следующее:)

Значение по умолчанию для максимального размера пула равно 100. Вы можете установить более высокое значениеномер также, поскольку производительность сервера не является проблемой ..

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