Я управляю сайтом с приличным трафиком (~ 100 000 просмотров страниц в день), и время от времени сайт останавливается из-за ошибок времени ожидания SQL Server.
Когда я запускаю SQL Profiler, я вижу команду, вызываемую сотни раз в секунду, например:
...
exec dbo.TempGetStateItemExclusive3 @id=N'ilooyuja4bnzodienj3idpni4ed2081b',...
...
Мы используем SQL Server для хранения состояния сеанса ASP.NET. Выше приведена хранимая процедура, вызываемая для получения состояния сеанса для данного сеанса. Кажется, он зацикливается, снова и снова прося один и тот же 2 или 3 сеанса.
Я нашел перспективное исправление , которое, похоже, решает эту точную ситуацию, но, похоже, не решило проблему для нас. (Я предполагаю, что это исправление включено в самый последний пакет обновления .NET, поскольку похоже, что вы больше не можете устанавливать его напрямую). Я добавил этот раздел реестра вручную, но мы по-прежнему видим циклические вызовы хранимых процедур, как указано выше (запрос одного и того же сеанса гораздо чаще, чем каждые 500 мс)
Мне не удалось воссоздать это на компьютере разработчика. Когда два запроса выполняются для одного и того же идентификатора сеанса, кажется, что он корректно блокируется и даже пытается нажать SQL, пока первая страница не освободит сеанс.
Есть идеи? Заранее спасибо !!!