Какую часть платформы ASP.Net вы используете для выполнения произвольного кода при каждом входящем запросе к IIS? - PullRequest
0 голосов
/ 16 марта 2009

Я хотел бы запустить отдельный кусок кода .Net для каждого запроса, поступающего через определенный веб-сайт в IIS. Это полностью изолированный код - он ни на что не влияет до или после него - он записывает некоторую информацию из запроса, а затем завершается.

Обратите внимание, что это не то, что я могу поместить в Application_OnRequestBegin или какой-либо другой файл ASP.Net, потому что мне нужно это выполнить для файлов не .Net (PDF, изображения и т. Д.). Он должен выполняться для запросов, которые обычно не попадают в среду .Net.

Нужен ли модуль HTTP? Я немного поработал с RTFM, но, похоже, есть несколько разных способов манипулирования конвейером, и я не совсем уверен, какой из них мне следует использовать.

Ответы [ 2 ]

3 голосов
/ 16 марта 2009

Вы можете использовать HTTP-модуль , однако для его использования вам потребуется сопоставить все запросы с IIS, что можно сделать с помощью карты подстановки. . Это повлияет на производительность, поскольку все запросы будут выполняться через среду выполнения .net.

Вы также можете написать свой собственный фильтр ISAPI, но я считаю, что вам придется использовать C ++.

Редактировать

ASP.Net имеет обработчик по умолчанию, если вы назначаете нужное вам подстановочное отображение, убедитесь, что оно все еще есть в вашем файле web.config в вашей папке windows / microsoft.net / framework .... / config /::

<httpHandlers>
....
            <add path="*" verb="GET,HEAD,POST" type="System.Web.DefaultHttpHandler" validate="True"/>
</httpHandlers>

Возможно, вы также удалили обработчик из файла конфигурации вашего Интернета. Наконец, вы можете попытаться добавить явное сопоставление для файла PDF.

1 голос
/ 16 марта 2009

Вы хотите написать ISAPI фильтр (терминология 5.0) или расширение (в 6.0).

...