Конфигурирование и настройка Microsoft ASP.NET




Создание собственного обработчика HTTP


ASP.NET облегчает создание собственных обработчиков HTTP, которые могут обрабатывать запросы для собственных расширений файлов или путей файлов. В этом разделе вы научитесь создавать простой обработчик HTTP и поставите его в соответствие новому расширению .asbx. Имеется три типа обработчиков HTTP: синхронные, асинхронные и фабрики обработчиков. Синхронный обработчик обрабатывает весь запрос перед отправкой результатов пользователю. Асинхронный обработчик обрабатывает длинные запросы и позволяет отправлять информацию к пользователю на различных этапах обработки запроса. Фабрика обработчиков HTTP генерирует несколько обработчиков в зависимости от запроса. Файлы .aspx обрабатываются обработчиком из фабрики обработчиков HTTP, так что каждый запрос может быть передан в класс страницы для каждого файла. Класс страницы реализует интерфейс IHttpHandler и является обработчиком для каждой страницы.

Собственный обработчик HTTP – это класс .NET, который реализует либо интерфейс IHttpHandler, либо интерфейс IHttpAsyncHandler. Первым шагом при создании обработчика является объявление обработчика и реализации его интерфейса.

C#

using System.Web; public class asbxHandler : IHttpHandler { }

VB.NET

Imports System.Web Public Class asbxHandler Implements IHttpHandler End Class

При реализации интерфейса IHttpHandler следует включить метод ProcessRequest и свойство IsReusable. Если запрос HTTP связан с обработчиком HTTP, он вызывает метод ProcessRequest и передает в него текущий контекст HTTP. Затем можно использовать объект контекста HTTP либо для чтения из запроса, либо для записи ответа.

C#

using System.Web; public class asbxHandler : IHttpHandler { public void ProcessRequest(HttpContext currentContext) { HttpResponse currentResponse = currentContext.Response; currentResponse.Write("<html><body>"); currentResponse.Write("You have accessed an .asbx file"); currentResponse.Write("</body></html>"); } }

VB.NET

Imports System.Web Public Class asbxHandler Implements IHttpHandler Public Sub ProcessRequest(ByVal currentContext as HttpContext) _ Implements IHttpHandler Dim currentResponse As HttpResponse = currentContext.Response currentResponse.Write("<html><body>") currentResponse.Write("You have accessed an .asbx file") currentResponse.Write("</body></html>") End Sub End Class




Содержание  Назад  Вперед