2008-12-24 21 views
56

¿Qué es un HttpHandler en ASP.NET? ¿Por qué y cómo se usa?¿Qué es un HttpHandler en ASP.NET

+1

Quizás pueda utilizar esta página desde MSDN como inicio: [http://msdn.microsoft.com/en-us/library/bb398986.aspx](http://msdn.microsoft.com/en- us/library/bb398986.aspx) – M4N

Respuesta

72

En los términos más simples, un ASP.NET HttpHandler es una clase que implementa la interfaz System.Web.IHttpHandler.

Los manejadores HTTP HTTP de ASP.NET son responsables de interceptar las solicitudes realizadas en su servidor de aplicaciones web ASP.NET. Se ejecutan como procesos en respuesta a una solicitud realizada al sitio ASP.NET. El controlador más común es un controlador de página ASP.NET que procesa archivos .aspx. Cuando los usuarios solicitan un archivo .aspx, la página procesa la solicitud a través del controlador de página.

ASP.NET ofrece unos controladores HTTP por defecto:

  • página Handler (.aspx): se encarga de páginas Web
  • de Control de Usuario Handler (.ascx): maneja páginas de control de usuario Web
  • web Servicio Handler (.asmx): se ocupa de las páginas web de servicios
  • traza Handler (trace.axd): gestiona la funcionalidad de traza

Puede crear sus propios manejadores HTTP personalizados que rindan resultados personalizados para el navegador. Los escenarios típicos para los manejadores HTTP en ASP.NET son, por ejemplo,

  • entrega de imágenes creadas dinámicamente (gráficos, por ejemplo) o imágenes redimensionadas.
  • RSS que emiten RSS-XML con formato

Usted implementar la interfazIHttpHandler para crear un controlador sincrónico y la interfaz IHttpAsyncHandler para crear un controlador asincrónico. Las interfaces requieren que implemente el método ProcessRequest y la propiedad IsReusable.

El método ProcessRequest maneja el procesamiento real en las solicitudes realizadas, mientras que el IsReusable propiedad booleana especifica si el controlador se puede agrupar para su reutilización (para aumentar el rendimiento) o si es necesaria una nueva controlador para cada solicitud.

+1

+ Gracias por su explicación breve y fácil de entender – Mostafa

+2

¿Puede explicar cuando dijo ** El controlador más común es un controlador de página ASP.NET que procesa archivos .aspx. Cuando los usuarios solicitan un archivo .aspx, la página procesa la solicitud a través del controlador de página. **? O cualquier enlace será muy apreciado. Gracias. –

+0

@PKKG Solo eche un vistazo a este artículo: http://msdn.microsoft.com/en-us/library/bb398986(v=vs.100).aspx#Background – splattne

14

Un HttpHandler (o IHttpHandler) es básicamente cualquier cosa que sea responsable de servir contenido. Una página ASP.NET (aspx) es un tipo de controlador.

Usted puede escribir su propia, por ejemplo, para servir las imágenes, etc de una base de datos en lugar de desde el servidor web en sí, o escribir un servicio POX sencilla (en lugar de SOAP/FO/etc)

+0

por favor explique esto ** Puede escribir el suyo, por ejemplo, para servir imágenes, etc. desde una base de datos en lugar de desde el servidor web en sí, o para escribir un simple servicio de POX (en lugar de SOAP/WCF/etc) **? –

+0

Cuando solicita una página en particular, ¿se llama a 'HttpHandler'? Es porque esa página se deriva de 'HttpHandler' y luego se crea el objeto' Página' y luego se llaman 'Eventos de página'. ¿Es así? –

2

HttpHandler ejemplo,

HTTP Handler en ASP.NET 2.0

Un controlador es responsable del cumplimiento de solicitudes de un navegador. Las solicitudes que gestiona un navegador se manejan por extensión de archivo o llamando al controlador directamente. La API de solicitud y respuesta de bajo nivel para atender las solicitudes Http entrantes son Http Handlers en Asp.Net. Todos los controladores implementan la interfaz IHttpHandler, que se encuentra en el espacio de nombres System.Web. Los controladores son algo análogos a las extensiones de la Interfaz de programación de aplicaciones de servidor de Internet (ISAPI).

Implementa la interfaz IHttpHandler para crear un controlador síncrono y la interfaz IHttpAsyncHandler para crear un controlador asincrónico. Las interfaces requieren que implemente el método ProcessRequest y la propiedad IsReusable. El método ProcessRequest maneja el procesamiento real para las solicitudes realizadas, mientras que la propiedad booleana IsReusable especifica si su controlador se puede agrupar para su reutilización para aumentar el rendimiento o si se requiere un nuevo controlador para cada solicitud.

La extensión de archivo .ashx está reservada para controladores personalizados. Si crea un controlador personalizado con una extensión de nombre de archivo de .ashx, se registrará automáticamente en IIS y ASP.NET. Si elige usar una extensión de archivo alternativa, tendrá que registrar la extensión dentro de IIS y ASP.NET. La ventaja de utilizar una extensión distinta de .ashx es que puede asignar múltiples extensiones de archivo a un manejador.

Configuración de manejadores HTTP

El controlador de sección de configuración es responsable de mapear las direcciones URL entrantes a la clase IHttpHandler o IHttpHandlerFactory. Se puede declarar en la computadora, el sitio o el nivel de la aplicación. Los subdirectorios heredan estas configuraciones. Los administradores usan la directiva de etiquetas para configurar la sección. las directivas se interpretan y procesan en un orden secuencial de arriba hacia abajo. Utilice la siguiente sintaxis para el controlador de la sección:

Creación de controladores HTTP

Para crear un controlador HTTP, debe implementar la interfaz IHttpHandler. La interfaz IHttpHandler tiene un método y una propiedad con las siguientes firmas: void ProcessRequest (HttpContext); bool IsReusable {get;}

+3

Esto fue copiado textualmente de alguna parte, posiblemente http://24x7aspnet.blogspot.com/2009/06/http-handler-in-aspnet-20.html, y ya hay una respuesta de alto valor aceptado. Por favor, al menos cita fuentes. Sería mejor si respondieras con tus propias palabras. – GargantuChet

0

Cualquier clase que implemente System.Web.IHttpHandler La interfaz se convierte en HttpHandler. Y esta clase se ejecuta como procesos en respuesta a una solicitud realizada al sitio ASP.NET.

El controlador más común es un controlador de página ASP.NET que procesa archivos .aspx. Cuando los usuarios solicitan un archivo .aspx, la página procesa la solicitud a través del controlador de página (The Class que implementa la interfaz System.Web.IHttpHandler).

Puede crear sus propios manejadores HTTP personalizados que rindan salida personalizada al navegador.

Algunos controladores predeterminados ASP.NET son:

  1. página Handler (.aspx) - Maneja páginas Web
  2. de Control de Usuario Handler (.ascx) - Maneja páginas de control de usuario Web
  3. Handler servicio Web (.asmx) - gestiona las páginas web de servicios
  4. traza Handler (trace.axd) - gestiona la funcionalidad de traza
0

Un ASP.N El controlador ET HTTP es el proceso (con frecuencia denominado "punto final") que se ejecuta en respuesta a una solicitud realizada a una aplicación web ASP.NET. El controlador más común es un controlador de página ASP.NET que procesa archivos .aspx. Cuando los usuarios solicitan un archivo .aspx, la página procesa la solicitud a través del controlador de página. Puede crear sus propios manejadores HTTP que rindan salida personalizada al navegador.

0

Un controlador ASP.NET HTTP es el proceso (con frecuencia denominado "punto final") que se ejecuta en respuesta a una solicitud realizada a una aplicación web ASP.NET. El controlador más común es un controlador de página ASP.NET que procesa archivos .aspx. Cuando los usuarios solicitan un .aspx file, la página procesa la solicitud a través del controlador de página.

El controlador de página ASP.NET es solo un tipo de controlador. ASP.NET viene con varios otros controladores incorporados, como el controlador de servicio web para .asmx files.

Puede crear manejadores HTTP personalizados cuando desee un manejo especial que pueda identificar usando extensiones de nombre de archivo en su aplicación. Por ejemplo, los siguientes escenarios serían buenos usos de controladores HTTP personalizados:

Feeds RSS Para crear una fuente RSS para un sitio, puede crear un controlador que emita XML con formato RSS. A continuación, puede vincular la extensión .rss (por ejemplo) en su aplicación al controlador personalizado. Cuando los usuarios envían una solicitud a su sitio que finaliza en .rss, ASP.NET llamará a su controlador para procesar la solicitud.

Servidor de imágenes Si desea que su aplicación web sirva imágenes en una variedad de tamaños, puede escribir un controlador personalizado para cambiar el tamaño de las imágenes y luego enviarlas al usuario como respuesta del manejador.

Los manejadores HTTP tienen acceso al contexto de la aplicación, incluida la identidad del usuario solicitante (si se conoce), el estado de la aplicación y la información de la sesión. Cuando se solicita un controlador HTTP, ASP.NET llama al método ProcessRequest en el controlador apropiado. El método ProcessRequest del controlador crea una respuesta, que se envía de vuelta al navegador solicitante. Al igual que con cualquier solicitud de página, la respuesta pasa por cualquier módulo HTTP que se haya suscrito a eventos que ocurran después de que se haya ejecutado el controlador.

Cuestiones relacionadas