Я разрабатываю POS-приложение, которое имеет локальную базу данных на каждом POS-компьютере и взаимодействует с сервером с помощью WCF, размещенного в IIS. Приложение было развернуто у нескольких клиентов уже более года.
Около недели назад мы начали получать отчеты от одного из наших клиентов о том, что сервер, на котором размещается IIS, работает очень медленно. Когда я проверил проблему, я увидел пул приложений с моей рабочей ракетой почти на 100% процессора на сервере с 8 процессорами.
Я проверил монитор активности SQL и сетевой том, и они не показали существенной перегрузки сверх того, что мы обычно видим.
При проверке потоков в Process Explorer я видел множество потоков, неоднократно вызывающих CreateApplicationContext. Я пытался установить .Net 2.0 SP1, согласно некоторым сообщениям, которые я нашел в сети, но это не решило проблему и заменило вызовы функций CLRCreateManagedInstance.
Я собираюсь захватить дамп с помощью adplus и windbg процессов IIS и попытаться выяснить, в чем дело.
Кто-нибудь сталкивался с чем-то подобным или имеет представление, какой каталог мне следует проверить?
p.s. Та же версия приложения развернута у другого клиента, и там она работает просто отлично. Я также попытался откатить версии (даже очень старые версии), и он все еще ведет себя точно так же.
Редактировать: ну, проблема решена, оказалось, что у меня был SQL-запрос, который не ограничивал набор результатов, и когда клиент прошел через определенное количество строк, он начал зависать на сервере. Мне потребовалось два дня, чтобы найти его из-за окружающего шума в журналах, но я подождал ночь и взял дамп, который немедленно показал мне запрос.