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

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

(Различия между версиями)
Перейти к: навигация, поиск
Версия 10:48, 21 июля 2008 (править)
Dmach (Обсуждение | вклад)
м
← К предыдущему изменению
Версия 16:21, 5 декабря 2008 (править) (отменить)
Dmach (Обсуждение | вклад)
м
К следующему изменению →
Строка 57: Строка 57:
* [http://msdn.microsoft.com/en-us/library/system.web.ihttphandler.aspx IHttpHandler Interface] * [http://msdn.microsoft.com/en-us/library/system.web.ihttphandler.aspx IHttpHandler Interface]
* [[IIS - установка модуля ASP.NET, HttpModule]] * [[IIS - установка модуля ASP.NET, HttpModule]]
 +
 +
 +[[Категория:IIS]]

Версия 16:21, 5 декабря 2008

В 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.ru размещает сайты в пул приложений для которого установлен интегрированный режим работы очереди. Если вам по каким-то соображениям нужен классический режим - вы можете обратиться в службу поддержки и оставить заявку на изменение режима работы для вашего сайта. Самостоятельно этого вы сделать не сможете.

Вы можете управлять веб-сервером 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

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

Ссылки по теме

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