Каковы последствия добавления Pooling = True с интегрированной безопасностью? - PullRequest
2 голосов
/ 22 февраля 2012

Мое приложение работает на ASP.NET 4 с бэкэндом SQL Server 2008 R2.

Строка подключения использует встроенную защиту. Я хочу знать, каковы преимущества добавления:

pooling = true; максимальный размер пула = N

в строке подключения, если для Integrated Security установлено значение true.

Должен ли я включить это или нет?

Отредактировано

Возможна ли проблема, обсуждаемая в этом вопросе, когда пул не включен?

Приложение начинает отображать неверные данные, но исправляет при перезапуске службы SQL Server.

Отредактировано:

Файл Web.Config содержит следующие строки:

<add name="ConStringPWS" connectionString="Data Source=.;Initial Catalog=pWS;Integrated Security=True;" providerName="System.Data.SqlClient"/>

<identity impersonate="true" userName="Server\Administrator" password="xyz"/>

Ответы [ 3 ]

4 голосов
/ 22 февраля 2012

Да, я думаю, что мы должны включить пул соединений. (На самом деле, по умолчанию пул включен, а максимальный размер пула равен 100)

Насколько я знаю, пулы не связаны с конфигурацией встроенной безопасности.

Пул соединений поможет вашему приложению повысить производительность и масштабируемость. Объединение в пул - это метод сокращения затрат на многократное открытие и закрытие соединений (физическое).

Насколько я знаю, чтобы ответить на ваш вопрос, Как проверить, включен ли пул или нет. Я думаю, что кто-то здесь может дать вам лучший ответ.

SqlConnectionStringBuilder cnnBuilder = new SqlConnectionStringBuilder(yourConnection.ConnectionString);
bool isPooling = cnnBuilder.Pooling;
1 голос
/ 22 февраля 2012

Проблема пула ключей в том случае, если включена встроенная защита, используется олицетворение и - ваш сайт такой?

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

См. Олицетворение / делегирование :

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

1 голос
/ 22 февраля 2012

Согласно MSDN :

Могут быть объединены только соединения с одинаковой конфигурацией. ADO.NET хранит несколько пулов одновременно, по одному для каждой конфигурации. Соединения разделяются на пулы по строке соединения и по идентификатору Windows при использовании встроенной защиты. Соединения также объединяются в зависимости от того, зачислены ли они в транзакцию.

Поскольку в режиме интегрированной безопасности вы будете получать доступ к базе данных под идентификатором вашего AppPool / рабочего процесса (если вы не используете олицетворение), крайне важно использовать пул соединений, поскольку по существу ВСЕ запросы на ваш сайт будут использовать соединения с такой же конфигурацией. Отказ от их объединения серьезно повлияет на производительность вашего приложения.

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