HTTPModule только вызывается один раз на страницу - PullRequest
0 голосов
/ 15 августа 2010

Я пытаюсь реализовать пользовательский HTTPModule для ASP.NET. У меня есть очень простая HTML-страница с изображением и HTTPModule, который подключается к событию BeginRequest. Когда я отлаживаюсь с веб-сервером разработчика Visual Studio, мой модуль вызывается дважды: один для запроса начальной страницы, затем один раз для запроса изображения. Это то, что я ожидал. Однако при развертывании приложения в IIS модуль вызывается только один раз для запроса страницы. Я не понимаю почему. Есть идеи? Спасибо.

Ответы [ 2 ]

3 голосов
/ 15 августа 2010

Я предполагаю, что вы используете IIS6 или IIS7 с классическим управляемым конвейерным режимом.В этом случае ваше приложение ASP.NET получает только запросы, которые сопоставлены с isapi.dll.Как правило, к ним относятся запросы со следующими расширениями: aspx, ashx, asmx, ... Подробнее смотрите здесь .

Запросы на другие расширенияобрабатываются непосредственно IIS, поэтому они никогда не поступают в ваш модуль HTTP (который работает как часть расширения ISAPI).

В IIS7 и более поздних версиях Microsoft интегрировала конвейер в IIS.Это означает, что все запросы проходят по всему конвейеру ASP.NET.

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

0 голосов
/ 15 августа 2010

Первое, что нужно проверить: действительно ли сервер связывается с изображением?Это в кэше клиента?

Второе, что нужно проверить: возможно, он кэшируется на стороне сервера?

Попробуйте загрузить URL-адрес самого изображения прямо в браузере ... и, возможно,добавьте что-то вроде ?foo=bar в конце, чтобы выполнить примитивную очистку кэша.

...