Итак, у вас есть класс, который реализует IHttpHandler
с именем: MyHandler
, и он находится в пространстве имен Example
, вам необходимо сделать следующие записи в Web.Config
сайта в разделе httpHandlers :
<httpHandlers>
<add verb="*" path="*" type="Example.MyHandler"/>
</httpHandlers>
Поскольку при этом перенаправляются все URL-адреса вашего веб-сайта / приложения на ваш обработчик, вы должны подумать о том, как обслуживать статический контент (imgs, сценарии, таблицы стилей и т. Д.). Одним из способов является сохранение такого статического содержимого в согласованном URL-адресе, таком как http://example.com/static/...
, затем вы можете установить свои обработчики следующим образом:
<httpHandlers>
<add verb="*" path="*" type="Example.MyHandler"/>
<add verb="GET,HEAD" path="static/*" type="System.Web.StaticFileHandler" />
</httpHandlers>
Для вашего локального веб-сервера разработки (встроенного в Visual Studio) это все, что нужно. Для IIS также необходимо указать IIS, как обращаться с этими URL-адресами (поскольку сервер сначала анализирует запрос, чтобы решить, куда его отправлять, в том числе отправлять его в ASP.NET или другое расширение).
- Открыть: диспетчер IIS ->
- Раздел: Сайты ->
- Щелкните правой кнопкой мыши на своем сайте ->
- Опция: Свойства ->
- Вкладка: Home Directoy ->
- Кнопка: [Конфигурация ...] ->
- Вкладка: Сопоставления ->
- Раздел: «Карты приложений с подстановочными знаками (порядок реализации):» ->
- Кнопка: [Вставить ...] ->
- Исполняемый файл: «C: \ WINDOWS \ Microsoft.NET \ Framework \ v2.0.50727 \ aspnet_isapi.dll» (или любая другая версия среды выполнения .NET, используемая вашим обработчиком) ->
- Снимите флажок «Убедитесь, что файл существует» ->
- Кнопка: [OK]
Теперь и IIS, и ASP.NET знают, как обращаться с вашими URL-адресами.
Приведенный выше подход означает, что при запросе статических файлов ASP.NET фактически обслуживает файлы, а не IIS - что приводит к нескольким недостаткам (обсуждается здесь ). Вы можете переопределить это поведение (отключить сопоставление с подстановочными знаками из статического каталога), переключив каталог на приложение (в диспетчере IIS), удалив оператор сопоставления с подстановочными знаками (добавленный выше) и переключив его обратно из приложения. Вуаля - статические файлы обрабатываются IIS без приставания к вашему ASP.NET.