IIS - установка обработчика ASP.NET, HttpHandler

Материал из 1GbWiki.

Перейти к: навигация, поиск

В IIS/ASP.NET можно написать обработчик (программный компонент) методы которого будут вызываться при обработке запросов средствами ASP.NET для формирования страниц или других типов ответов. Эту технологию можно применять для создания обработчиков серверных файлов нового типа, также этот метод применяется для методов ЧПУ (человеко-понятные-урлы).

Содержание

[править] Тестовый обработчик для примера

Специально для демонстрации был написан обработчик с именем HttpTestHandler, его код и бинарное представление (библиотека .dll) можно взять тут - testHandler.rar (8kb). Обработчик формирует ответ веб-сервера в html-виде:

Изображение:Http-response-html1.gif

[править] Размещение обработчика

Аналогично статье IIS - установка модуля ASP.NET, HttpModule

[править] Подключение обработчика

[править] IIS 6

Подключение обработчика выполняется в два этапа, при этом необходимо содействие службы поддержки хостинга.

  • Необходимо подключить ASP.NET для обработки всех запросов, для этого вам нужно направить заявку на эту операцию в службу поддержки хостинга. При этом нужно указать, требуется ли для каждого запроса проверять наличие файла или нет.
  • Разместить в файле Web.config маппинг расширения файла для обработки вашим обработчиком, в примере ниже обработчик HttpTestHandler срабатывает только на файлы с расширением .test (секция path="*.test"), если вам необходимо обрабатывать обработчиком запросы к файлам всех типов а так же к каталогам, следует указать path="*"
<configuration>
  <system.web>
    <httpHandlers>      
      <add verb="*" path="*.test" type="InSolve.test.HttpTestHandler"/>
    </httpHandlers>
  </system.web>
</configuration>

[править] IIS 7 - режим Integrated Pipeline (по умолчанию)

Важно! IIS 7 на хостинге 1Gb.ua размещает сайты в пул приложений для которого установлен интегрированный режим работы очереди. Если вам по каким-то соображениям нужен классический режим - вы можете обратиться в службу поддержки и оставить заявку на изменение режима работы для вашего сайта. Самостоятельно этого вы сделать не сможете.

Вы можете управлять веб-сервером IIS7 средствами редактирования файла Web.config, обращение в службу поддержки хостинга не требуется, вы можете выполнить конфигурацию самостоятельно. В корне приложения (сайта) вам нужно внести изменения в Web.config добавив следующую секцию:

<configuration>
  <system.webServer>
    <handlers>
      <add name="WildCard" path="*.test" verb="*" type="InSolve.test.HttpTestHandler" resourceType="Unspecified" />
    </handlers>
  </system.webServer>
</configuration>

Замечание по поводу обработки всех запросов для примера конфигурации IIS6 справедливо и тут. После внесения изменений запросы к файлам .test вашего сайта будут обрабатываться обработчиком HttpTestHandler:


[править] IIS 7 - режим Classic Pipeline

в процессе написания

[править] Ссылки по теме

Личные инструменты