Мы испытываем противную проблему в Выпуске 2 11 г Oracle, где процесс w3wp вступает во владение и все ядро процессора и отладка шоу, что поставщик данных Oracle бросает ThreadAbortExceptions бесконечно. Разработчик нашел эту проблему путем выполнения следующего:
1) Просмотрите веб-сайт, который использует соединения данных Oracle локально (http://localhost/OracleWebSite - мы используем IIS, не ASP.NET dev сервер, для всех наших сайтов). Это гарантирует, что процесс w3wp работает и что активный пул Oracle соединений существует в пуле приложений.
2) Остановите веб-сайт (или выполните Восстанавливание Всей операции в Visual Studio на рассматриваемом веб-сайте).
Наша обработка соединения Oracle в затронутых приложениях (все веб-приложения Oracle) известна и устойчива. Эта проблема не происходит, если мы отключаем организацию пула подключений. Эта проблема не происходит в Выпуске 1 11 г Oracle.
Все, что вызывает перекомпиляцию (изменение web.config, app_offline.htm, изменение файла .aspx и т.д.), приводит к максимальному использованию CPU на ядре. Если вы повторяете этот процесс, то максимальное использование ЦП достигается на следующем ядре, пока общее использование ЦП не достигнет 100%.
Я подключил windbg с расширениями sos, и похоже, что для каждого максимально загруженного ядра есть 1 поток, застрявший в System.AppDomain.Unload(System.AppDomain), а другой застрял на Oracle.DataAccess.Client.OracleTuningAgent.DoScan().
Первый поток
Второй поток
Похоже, что AppDomain.Unload ждет завершения OracleTuningAgent.DoScan, но этот поток заблокирован или спит.
Oracle подтвердила проблему (ошибка # 9648040), и она является приоритетной. Тем временем, возможными обходными путями являются:
-Scott