2009-03-16 5 views
0

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

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

Является ли HTTP-модуль тем, что я ищу? У меня RTFM'ed совсем немного, но, похоже, существует несколько способов манипулировать конвейером, и я не совсем уверен, какой из них я должен использовать.

ответ

3

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

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

Edit

ASP.Net имеет обработчик по умолчанию, если ваш doign дикое отображение карты вам нужно, убедитесь, что вы до сих пор это в вашем web.config в вашем Windows/Microsoft.NET/рамки ..../config/folder:

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

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

+0

Подстановочные знаки в порядке, но после выполнения моего кода я хочу, чтобы запрос продолжался без остановок. Смысл, я не хочу, чтобы что-то провалилось, потому что .Net пытается разобрать файл PDF или что-то в этом роде. – Deane

+0

Хорошо, позвольте мне найти вам ссылку, есть способ сделать это. – JoshBerke

 Смежные вопросы

  • Нет связанных вопросов^_^