Share via


Cómo: Registrar controladores HTTP

Actualización: noviembre 2007

Una vez que haya creado una clase de controlador HTTP personalizado, debe registrarlo en el archivo Web.config. De esta forma, ASP.NET puede llamar al controlador para dar servicio a solicitudes realizadas a recursos con la extensión de nombre de archivo que desee que el controlador HTTP procese.

Registrar un controlador HTTP en el archivo Web.config

Para que ASP.NET envíe solicitudes a un controlador HTTP personalizado, debe registrar la extensión de nombre de archivo con el controlador HTTP personalizado. Esto se hace en el archivo Web.config de la aplicación.

Para registrar un controlador HTTP

  1. Compile la clase .NET del controlador HTTP y copie el ensamblado resultante en el directorio Bin de la raíz virtual de la aplicación, o ponga el código fuente del controlador en la carpeta de App_Code de la aplicación.

    Para obtener un ejemplo de un controlador HTTP, vea Tutorial: Crear un controlador HTTP sincrónico.

  2. Registre el controlador HTTP en el archivo Web.config de la aplicación creando una sección Elemento httpHandlers (Esquema de configuración de ASP.NET).

    En el ejemplo de código siguiente se muestra cómo registrar un controlador HTTP que responde a las solicitudes del recurso SampleHandler.new. El controlador se define como la clase SampleHandler en el ensamblado SampleHandlerAssembly.

    <configuration>
      <system.web>
        <httpHandlers>
          <add verb="*" path="SampleHandler.new" 
            type="SampleHandler, SampleHandlerAssembly" />
        </httpHandlers>
      <system.web>
    </configuration>
    

    En el ejemplo de código siguiente se asignan todas las solicitudes HTTP realizadas a los archivos con la extensión de nombre de archivo de SampleFileExtension a la clase de controlador HTTP personalizado SampleHandler2. En este caso, el código del controlador está en el directorio App_Code, por lo que no es necesario especificar un ensamblado.

    <configuration>
      <system.web>
        <httpHandlers>
          <add verb="*" path="*.SampleFileExtension" 
             type="SampleHandler2 " />
        </httpHandlers>
      <system.web>
    </configuration>
    

Configurar IIS para una extensión de controlador HTTP

IIS (Servicios de Internet Information Server) sólo pasará las solicitudes a ciertos tipos de archivo a ASP.NET para darles servicio. De manera predeterminada, los archivos con extensiones de nombre de archivo como .aspx, .ascx, .asmx y .ashx ya se asignan a la extensión ISAPI de ASP.NET (Aspnet_isapi.dll). Sin embargo, para que IIS pase las extensiones de nombre de archivo personalizadas a ASP.NET, debe registrar las extensiones en IIS. Para obtener más información, vea Información general sobre el ciclo de vida de una aplicación ASP.NET para IIS 5.0 y 6.0.

Para asignar una extensión de nombre de archivo en IIS

  1. En Windows, abra el Administrador de Servicios de Internet Information Server (IIS).

  2. Abra el nodo para el equipo, abra el nodo Sitios Web y, a continuación, abra el nodo Sitio Web predeterminado.

  3. Haga clic con el botón secundario en el nombre de la aplicación y, a continuación, haga clic en Propiedades.

  4. Haga clic en la ficha Directorio (o en la ficha Directorio virtual en IIS 6.0) y, a continuación, haga clic en Configuración.

  5. En la ficha Asignaciones, haga clic en Agregar y cree una nueva asociación para la extensión de nombre de archivo que desea que IIS reenvíe a ASP.NET.

    Nota:

    Haga clic en el botón Editar para ver una asociación existente y determinar qué valor utilizar para el archivo ejecutable.

  6. Si desea que el controlador se ejecute independientemente de si hay un archivo con la extensión de nombre de archivo solicitada, desactive la casilla de verificación Comprobar si el archivo existe.

Vea también

Tareas

Cómo: Crear un controlador HTTP asincrónico

Tutorial: Crear un controlador HTTP sincrónico

Conceptos

Información general sobre el ciclo de vida de una aplicación ASP.NET para IIS 5.0 y 6.0

Otros recursos

Introducción a los controladores HTTP