У нас есть MSSQL 2008 R2, работающий на Windows 2008 R2, он поражен двумя веб-серверами server 2008 R2, на которых запущен asp.net. Оба присоединены к домену Active Directory и используют встроенную аутентификацию для подключения к серверу sql. В пуле приложений IIS настроены имя пользователя и пароль. Это работало безупречно последний год или около того.
Недавно мы хотели запустить новые веб-серверы, и я настроил новую Windows 2012 R2 с тем же веб-сайтом и настроил пул приложений IIS с тем же именем пользователя и паролем. Сайт подключается и отлично работает, когда я провожу тестирование. Но как только я нагружаю сервер, я вижу, как IIS начинает зависать и запросы начинают накапливаться.
Я сделал дамп памяти, использовал новый анализ DebugDiag 2.0 и увидел, что запросы зависают при открытии sql-соединения:
Этот поток пытается открыть соединение с базой данных
Строка подключения: Источник данных = 10.81.73.66; Партнер по отработке отказа = 10.81.73.72; Начальный каталог = XXXX; Интегрированная безопасность = True; Максимальный размер пула = 6000; Время ожидания подключения = 30; Сетевая библиотека = dbmssocn; Имя приложения = EntityFrameworkMUE и таймаут подключения установлен на 30 секунд.
В рамках анализа я вижу довольно много исключений:
Истекло время ожидания подключения. Время ожидания истекло при попытке использовать подтверждение квитирования перед входом в систему. Это может быть связано с тем, что квитирование перед входом в систему не удалось или сервер не смог ответить вовремя. Этот сбой произошел при попытке подключиться к основному серверу. Время, затраченное на попытку подключения к этому серверу, было - инициализация [Pre-Login] = 3342; рукопожатие = 0;
Есть идеи, что попробовать?
В конечном итоге мы решили проблему в нашей среде, удалив интегрированную безопасность и указав идентификатор пользователя и пароль в строке подключения. Так и не нашел первопричины.
Павел,
Вполне возможно, что TCP / IP включен для IPv4-адреса SQL-сервера, но не для IPv6, и ваши новые серверы пытаются говорить по IPv6.
Попробуйте включить IPv6 на сервере SQL.
В диспетчере конфигурации SQL Server