Назад | Перейти на главную страницу

Как я могу увидеть, какой запрос вызвал сброс IIS7 из-за переполнения стека?

Мои веб-серверы IIS7 получают сотни запросов в секунду, и в известное время переполнение стека заставило IIS7 перезапустить пул приложений. Как я могу увидеть, какой запрос содержал stackoverflow, и, в идеале, какая трассировка стека была в этом запросе, когда IIS решил убить пул приложений?

Как узнать, что это переполнение стека? Независимо от того, что сообщает об этом, похоже, что это сообщение о сбое процесса.

Подготовьтесь к следующему разу - запустите DebugDiag 1.2 или отладчик аварийного режима для процесса и настройтесь на дамп памяти при сбое.

Вкратце:

  1. Определите PID пула приложений для текущего экземпляра (вы можете отключить переработку, чтобы он не продолжал меняться; или используйте DebugDiag, который может нацеливаться на пул приложений через PID)
  2. ADPLUS / PROCDUMP -P PID -CRASH (или запустите DebugDiag с правилом сбоя для этого пула приложений)
  3. Получите файл дампа и загрузите его в DebugDiag
  4. Ищите особенно длинные стеки ниток