Перехват запросов HTTP IIS 7.0 без HttpModule (и не ISAPI) - PullRequest
1 голос
/ 01 мая 2011

Я работаю над проектом, основанным на способности «перехватывать» входящие HTTP-запросы в IIS 7.0. Мне нужна лишь базовая информация о том, какие URL запрашиваются в IIS в текущий момент, для дальнейшей обработки.

Есть ли способ добиться этого без HttpModule? Мол, как-то подключиться к глобальному процессу IIS? Я имею в виду, что я хотел бы создать продукт, который бы не требовал регистрации HttpModule в GAC или обладателей веб-сайтов, чтобы они включали какие-либо сведения о конфигурации (или даже делали что-либо) в своем веб-приложении (web.config) и т. Д.

Информация, которая мне нужна, в основном запрашиваемый URL, но также мне может понадобиться идентификатор приложения IIS, чтобы определить местоположение сайта на жестком диске и создать там какую-нибудь папку ...

Некоторые дополнительные пояснения, чтобы прояснить мой вопрос :

Я говорю о приложении (компоненте на стороне сервера) в масштабе «всего сервера», так что любой конкретный владелец «сайта» (хотя может быть несколько сайтов, размещенных в нашем экземпляре IIS7) не будет иметь чтобы сделать что-нибудь с его стороны, но мой «серверный» компонент знал бы, что URL был запрошен на одном из этих сайтов ...

Например, в основном мой «Компонент» получит сообщение о том, что URL «/ about-us» / был запрошен на сайте с именем хоста «one-of-my-hosted-domains.com» без необходимости делать что-нибудь (без global.asax, без web.config или без добавления HttpModule в BIN или GAC ...) - мне нужен какой-то совершенно незаметный способ узнать, какие URL запрашиваются в моем локальном экземпляре IIS ... (как будто это был бы HttpModule, сидящий в этом домене ...:)

Буду очень признателен за некоторые подсказки по этому поводу!

1 Ответ

0 голосов
/ 01 мая 2011

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

...