En este artículo paso a paso se muestra cómo usar Visual C#
.NET para crear un controlador HTTP sencillo personalizado. En este artículo se
muestra cómo crear, implementar y configurar el controlador.
Realizar el controlador
- Abra Microsoft Visual Studio .NET. En Visual C# .NET, cree
un nuevo proyecto de Biblioteca de clases denominado MyHandler.
- Establezca una referencia al ensamblado System.Web.dll.
- Agregue la directiva siguiente a la clase:
- Cambie el nombre de la clase SyncHandler.cs y cambie
después la definición de la clase para que refleje dicho cambio.
- Implemente la interfaz IHttpHandler. La definición de la clase debe aparecer de la manera siguiente:
public class SyncHandler : IHttpHandler
- Implemente la propiedad IsReusable y el método ProcessRequest de la interfaz IHttpHandler. Puesto que se trata de un controlador sincrónico, devuelva False para la propiedad IsReusable, de manera que el controlador no se bloquee.
public bool IsReusable
{
get {return false;}
}
public void ProcessRequest(HttpContext context)
{
context.Response.Write("Hello from custom handler.");
}
- Compile el proyecto.
Implementar el controlador
- Cree un nuevo directorio denominado Handler bajo el
directorio C:\Inetpub\Wwwroot.
- Cree un subdirectorio denominado Bin en el directorio
Handler recién creado. La ruta de acceso resultante es
C:\Inetpub\Wwwroot\Handler\Bin.
- Copie el archivo MyHandler.dll del directorio Bin\Debug del
proyecto al directorio C:\Inetpub\Wwwroot\Handler\Bin.
- Siga estos pasos para marcar el nuevo directorio Handler
como una aplicación Web:
- Abra el Administrador de servicios Internet.
- Haga clic con el botón secundario del mouse (ratón) en el directorio Handler y, a continuación, haga clic en Propiedades.
- En la ficha Directorio, haga clic en Crear.
- Siga estos pasos para crear una asignación de aplicaciones
para el controlador. Para este controlador, cree una asignación al archivo
Aspnet_isapi.dll para la extensión *.sync. Siempre que se solicita un archivo
.sync, la solicitud se dirige hacia ASP.NET y ASP.NET ejecuta el código en el
controlador.
- Haga clic con el botón secundario del mouse en la aplicación Web Handler y, a continuación, haga clic en Propiedades.
- En la ficha Directorio, haga clic en Configuración.
- Haga clic en Agregar para agregar una nueva asignación.
- En el cuadro de texto Ejecutable, escriba la ruta de acceso siguiente: Microsoft Windows 2000:
C:\WINNT\Microsoft.NET\Framework\<númeroDeVersión>\Aspnet_isapi.dll
Microsoft Windows XP:
C:\WINDOWS\Microsoft.NET\Framework\<númeroDeVersión>\Aspnet_isapi.dll
- En el cuadro de texto Extensión, escriba .sync.
- Asegúrese de que la casilla de verificación
Comprobar que el archivo existe está desactivada y, a
continuación, haga clic en Aceptar para cerrar el cuadro de diálogo Agregar y modificar asignación de extensión a aplicación.
- Haga clic en Aceptar para cerrar los cuadros de diálogo Configuración de aplicaciones y Propiedades de Handler.
- Cierre el Administrador de servicios Internet.
Configurar el sistema
- En el directorio C:\Inetpub\Wwwroot\Handler, cree un nuevo
archivo denominado Web.config.
- Agregue el código siguiente a Web.config:
<configuration>
<system.web>
<httpHandlers>
<add verb="*" path="*.sync" type="MyHandler.SyncHandler, MyHandler" />
</httpHandlers>
</system.web>
</configuration>
En el atributo verb="*" se indica al controlador que procese una solicitud que utiliza
cualquier verbo (por ejemplo, POST, HEAD, GET, etc.). Si desea que este
controlador sólo procese la solicitud POST, cámbielo a verb="POST".
En el atributo path="*.sync" se indica al controlador que procese cualquier solicitud entrante
de archivos con la extensión .sync.
En el atributo type="MyHandler.SyncHandler, MyHandler" se indica al controlador que procesa la solicitud que se
implemente en el espacio de nombres MyHandler.SyncHandler. Esta clase reside en el ensamblado MyHandler.
Probar el módulo
Para probar un controlador no es necesario que la página exista
en el sistema de archivos. Por ejemplo, solicite el archivo Default.sync en la
aplicación Web Handler (http://<nombreDeEquipo>/Handler/Default.sync).
Debe recibir los resultados siguientes:
Hello from custom handler.
Para obtener información adicional acerca de
los controladores HTTP, haga clic en el número de artículo siguiente para verlo
en Microsoft Knowledge Base:
307985
(http://support.microsoft.com/kb/307985/
)
INFO: Introducción a los módulos y los controladores HTTP de ASP.NET
Id. de artículo: 308001 - Última revisión: lunes, 25 de septiembre de 2006 - Versión: 3.5
La información de este artículo se refiere a:
- Microsoft ASP.NET 1.1
- Microsoft ASP.NET 1.0
- Microsoft Visual C# .NET 2003 Standard Edition
- Microsoft Visual C# .NET 2002 Standard Edition
| kbconfig kbhowtomaster kbhttphandlers kbhttpruntime kbweb KB308001 |