Я мог бы найти обходной путь, чтобы заставить мой код работать.Однако я не могу объяснить, как обрабатывается веб-страница с поддержкой ajax по умолчанию.
Я хотел бы поблагодарить Тони за его понимание, которое заставило меня задуматься в этом направлении.
Чтобы проверитьПри обработке я запустил модуль со страницей с поддержкой ajax, на которой была панель обновления, на которой отображалось текущее системное время.Панель обновлений обновлялась на основе таймера, который отключался каждые 10 секунд.То, что я заметил, было то, что для каждого запроса было сделано несколько звонков в httpmodule.Первый вызов модуля имеет заголовок, который содержит около 7 пар ключ-значение, таких как Соединение, Авторизация, Хост и т. Д. Последующие вызовы имели некоторую дополнительную пару ключ-значение, среди которых пара привлекла мое внимание.Это x-запрашиваемое с и x-microsoftajax, которое, как я считаю, XHttpRequest ... запрос ajax.
Итак, в моем решении я просто пропустил обработку моего модуля в зависимости от наличия этих значений заголовка, что-то вродеследующее.
if (HttpContext.Current.Request.Headers["x-microsoftajax"] == null)
{ ... old code ... }
Как только я это сделаю, модуль будет выполнен во время первого вызова, и выполнение пропускается каждый раз, когда он вызывается как часть обработки ajax.