#http #iis-7 #httprequest #servermanager
#http #iis-7 #httprequest #servermanager
Вопрос:
Я работаю над проектом, который основан на возможности «перехватывать» входящие 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:
Возможно, было бы достаточно более простого подхода; включите ведение журнала запросов на вашем сервере IIS, затем просмотрите результирующие файлы журнала. Вы должны увидеть запись для каждого запроса.