Sitecore HttpModules инициализируется во второй раз

Мы испытываем пики процессора в внезапные моменты. После проверки наших журналов Sitecore я заметил, что в журнале есть много записей с "11:49:26 INFO HttpModule инициализируется" . Насколько известно, его следует инициализировать только при запуске приложения. И это все еще появляется после запуска приложения. Я прав? Если да, то где эти модули могут быть инициализированы во второй раз?

1 ответ

Вы видите сообщения "HttpModule is initialized", когда IIS оставляет экземпляр текущего модуля Http и создает новый. Это происходит, когда время ожидания экземпляра модуля Http возвращается на текущий запрос. Вместо постоянного ожидания ответа, который может вызвать зависание, IIS пытается создать экземпляр нового экземпляра модуля Http и дать ему возможность управлять ожидающими запросами.

Там может быть много причин, почему модуль Http зависает. Некоторые из наиболее распространенных, которые я видел, - это не эффективная конфигурация настроек кэширования в вашем решении или дорогая логика, которая выполняется при каждом запросе и т. Д. Если это происходит только для определенных страниц, изучите логику этих страниц. Проверьте попадания в кеш и промахи, чтобы увидеть, что это может быть связано с кешированием. Самый простой способ - использовать один из инструментов профилировщика.NET, чтобы увидеть, какой код занимает больше всего времени при выполнении страницы (в какой-то момент я использовал ANTS Profiler. Я считаю, что есть и бесплатные профилировщики).

Я опубликовал сообщение, объясняющее, почему это происходит: загадка "HttpModule is initialized".

В двух словах - это может случиться, когда запросы приходят быстрее, чем обрабатываются.

Сообщения ожидаемые и исправные (в небольшом количестве) обычно показывают всплеск количества поступающих запросов.

Другие вопросы по тегам