Это может быть слепой путь ... но ваш контекст - это веб-приложение? Вы используете старую версию EntLib (4 или ниже)?
В известных версиях EntLib 4 (и более ранних) существует ошибка, которая может возникнуть при большой нагрузке в контексте приложения ASP.NET, размещенного на IIS. Я не помню всех деталей, но в основном IIS имеет оптимизацию, при которой под большой нагрузкой он может «припарковать» поток во время ожидания (чтобы освободить его, чтобы его можно было использовать для чего-то другого), а затем попытаться продолжить выполнение того же потока LOGICAL в том, что фактически является другим потоком, когда время ожидания ввода-вывода закончилось.
Если у вас много доступа к данным, это может привести к появлению симптомов, которые вы видите - результаты одного запроса в конечном итоге будут получены в потоке, который выполнил совершенно другой запрос.
Если вы не используете EntLib, проверьте, не содержит ли ваш собственный код ту же ошибку. Ищите атрибут [ThreadStatic] - они НЕ обрабатываются IIS, когда он решает перенести логику в другой поток!
Погуглите «ловкость потоков IIS», чтобы получить больше информации.
Несколько ссылок, которые могут быть полезны:
http://piers7.blogspot.no/2005/11/threadstatic-callcontext-and_02.html
а также
http://blog.idm.fr/2010/03/aspnet-thread-agility-or-why-threadstatic-should-not-be-used.html