2011-01-05 3 views
3

Я понимаю, что процесс обработки обработчиков http обрабатывает, но это просто теория, поскольку я ее не понимаю. Многим сторонним элементам управления требуется добавить обработчик http в web.config. И иногда нам необходимо создать собственный класс с помощью метода ProcessRequest, который реализует интерфейс IHttpHandler, но я смущен, чтобы понять, где подходит Http-обработчик и каковы его роли?Зачем нам нужны Http-обработчики?

+1

Каждый запрос должен обрабатываться некоторой частью кода, будь то .aspx, .ashx, .asmx или что-то еще. Это делается с помощью HttpHandlers, и asp.net поставляется с кучей обработчиков предварительной сборки, и вы можете добавить больше своего выбора. –

ответ

4

Http Обработчики являются неотъемлемой частью ASP.NET - они , что обрабатывает запрос и генерирует ответ. В веб-формах типично для стр. (aspx или, возможно, ashx) для интерпретации запроса, но это сам тип обработчика (только отображаемый по умолчанию в основном файле web.config).

В случае добавления обработчиков в файл конфигурации, как правило, это потому, что приложение генерирует содержимое динамически для URL-адресов, которые не волшебно карту в существующие файлы или добавить некоторую логику для файлов, которые делают существуют, но которые не являются регулярными asp.net.

Если вы используете ASP.NET MVC, вы, как правило, это нужно гораздо меньше (если вообще), так как это норма запросов не отображать непосредственно к ASPX/ASHx в исходном дереве.

Возвращаясь к веб-формам ASP.NET, основное время, которое я использовал обработчики, - это делать такие вещи, как бинарные загрузки, экспорт файлов и т. Д. - там, где я действительно не хочу, чтобы он работал через конвейер aspx webforms.

0

Лично я использую их для обработки всех моих запросов AJAX. Поскольку я обычно выводю XML/JSON, я использую обработчик, поэтому мне не нужно беспокоиться обо всех накладных расходах, связанных с внедрением System.Web.UI.Page.

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

Шон

+0

HttpHandlers не перехватывают конвейер, для этого вы должны использовать HttpModules. –

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