Elemento httpHandlers (Esquema de configuración de ASP.NET)

Actualización: noviembre 2007

Asigna las solicitudes entrantes al controlador adecuado según la dirección URL y el verbo HTTP especificado en la solicitud. Este elemento se puede declarar en cualquier nivel de la jerarquía de configuración.

Elemento <configuration>
  Elemento system.web (Esquema de configuración de ASP.NET)
    Elemento httpHandlers (Esquema de configuración de ASP.NET)

<httpHandlers>
   <add... />
   <remove... />
   <clear/>
</httpHandlers>

Atributos y elementos

Las siguientes secciones describen atributos, elementos secundarios y elementos primarios.

Atributos

Ninguno.

Elementos secundarios

Subetiqueta

Descripción

add

Elemento opcional.

Especifica la asignación de un verbo o una ruta de acceso a un controlador.

clear

Elemento opcional.

Quita todas las asignaciones de controlador actualmente configuradas o heredadas.

remove

Elemento opcional.

Elimina la asignación de un verbo o una ruta de acceso a un controlador. La directiva remove debe coincidir exactamente con la combinación de verbo y ruta de acceso de una directiva add anterior. No se admiten los caracteres comodín.

Elementos primarios

Elemento

Descripción

configuration

Especifica el elemento raíz de cada archivo de configuración que utilizan las aplicaciones basadas en Common Language Runtime y .NET Framework.

system.web

Especifica el elemento raíz de la sección de configuración de ASP.NET.

Comentarios

Los subdirectorios de la aplicación heredan la configuración de <httpHandlers>.

Las directivas <add> se procesan secuencialmente, de arriba a abajo. Si dos o más elementos <add> especifican la misma combinación de verbo y ruta de acceso, el último <add> prevalecerá sobre el resto.

Nota

Los Servicios de Microsoft Internet Information Server (IIS) tienen su propio modelo de asignación de ISAPI a extensiones. Para que la asignación entre la extensión de una aplicación determinada y su controlador tenga efecto, la extensión deberá estar asignada en IIS a la ISAPI de ASP.NET. En el caso de extensiones no estándar, como las personalizadas, se deberá configurar IIS según corresponda.

Configuración predeterminada

En .NET Framework 2.0, el siguiente elemento httpHandlers predeterminado se configura en el archivo Machine.config.

<httpHandlers />

En .NET Framework 1.1, el siguiente elemento httpHandlers predeterminado se configura en el archivo Machine.config.

Nota

System.Web.HttpForbiddenHandler es un tipo interno que emite el error HTTP 403 "Prohibido: Acceso denegado" cuando se intenta obtener acceso a un recurso prohibido.

System.Web.StaticFileHandler es otro tipo interno que controla el acceso a archivos especificados. En caso de que surjan problemas de acceso, genera uno de los errores siguientes: Error HTTP 401 "No autorizado"; Error HTTP 403 "Prohibido: Acceso denegado; o error HTTP 404 "No se encontró el archivo o directorio".

<httpHandlers>
     <add verb="*" path="*.vjsproj" type="System.Web.HttpForbiddenHandler"/>
     <add verb="*" path="*.java" type="System.Web.HttpForbiddenHandler"/>
     <add verb="*" path="*.jsl" type="System.Web.HttpForbiddenHandler"/>
     <add verb="*" path="trace.axd" type="System.Web.Handlers.TraceHandler"/>
     <add verb="*" path="*.aspx" type="System.Web.UI.PageHandlerFactory"/>
     <add verb="*" path="*.ashx" type="System.Web.UI.SimpleHandlerFactory"/>
     <add verb="*" path="*.asmx" type="System.Web.Services.Protocols.WebServiceHandlerFactory,
System.Web.Services, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" 
          validate="false"/>
     <add verb="*" path="*.rem" type="System.Runtime.Remoting.Channels.Http.HttpRemotingHandlerFactory,
System.Runtime.Remoting, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" 
          validate="false"/>
     <add verb="*" path="*.soap" type="System.Runtime.Remoting.Channels.Http.HttpRemotingHandlerFactory,
System.Runtime.Remoting, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" 
          validate="false"/>
     <add verb="*" path="*.asax" type="System.Web.HttpForbiddenHandler"/>
     <add verb="*" path="*.ascx" type="System.Web.HttpForbiddenHandler"/>
     <add verb="GET,HEAD" path="*.dll.config" type="System.Web.StaticFileHandler"/>
     <add verb="GET,HEAD" path="*.exe.config" type="System.Web.StaticFileHandler"/>
     <add verb="*" path="*.config" type="System.Web.HttpForbiddenHandler"/>
     <add verb="*" path="*.cs" type="System.Web.HttpForbiddenHandler"/>
     <add verb="*" path="*.csproj" type="System.Web.HttpForbiddenHandler"/>
     <add verb="*" path="*.vb" type="System.Web.HttpForbiddenHandler"/>
     <add verb="*" path="*.vbproj" type="System.Web.HttpForbiddenHandler"/>
     <add verb="*" path="*.webinfo" type="System.Web.HttpForbiddenHandler"/>
     <add verb="*" path="*.asp" type="System.Web.HttpForbiddenHandler"/>
     <add verb="*" path="*.licx" type="System.Web.HttpForbiddenHandler"/>
     <add verb="*" path="*.resx" type="System.Web.HttpForbiddenHandler"/>
     <add verb="*" path="*.resources" type="System.Web.HttpForbiddenHandler"/>
     <add verb="GET,HEAD" path="*" type="System.Web.StaticFileHandler"/>
     <add verb="*" path="*" type="System.Web.HttpMethodNotAllowedHandler"/>
</httpHandlers>

En .NET Framework 1.0, el siguiente elemento httpHandlers predeterminado se configura en el archivo Machine.config.

<httpHandlers>
     <add verb="*" path="trace.axd" type="System.Web.Handlers.TraceHandler" />
     <add verb="*" path="*.aspx" type="System.Web.UI.PageHandlerFactory" />
     <add verb="*" path="*.ashx" type="System.Web.UI.SimpleHandlerFactory" />
     <add verb="*" path="*.asmx" type="System.Web.Services.Protocols.WebServiceHandlerFactory,
System.Web.Services, Version=1.0.3300.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" 
          validate="false"/> 
     <add verb="*" path="*.rem" type="System.Runtime.Remoting.Channels.Http.HttpRemotingHandlerFactory,
System.Runtime.Remoting, Version=1.0.3300.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" 
          validate="false"/>
     <add verb="*" path="*.soap" type="System.Runtime.Remoting.Channels.Http.HttpRemotingHandlerFactory,
System.Runtime.Remoting, Version=1.0.3300.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" 
          validate="false"/>
     <add verb="*" path="*.asax" type="System.Web.HttpForbiddenHandler" />
     <add verb="*" path="*.ascx" type="System.Web.HttpForbiddenHandler" />
     <add verb="*" path="*.config" type="System.Web.HttpForbiddenHandler" />
     <add verb="*" path="*.cs" type="System.Web.HttpForbiddenHandler" />
     <add verb="*" path="*.csproj" type="System.Web.HttpForbiddenHandler" />
     <add verb="*" path="*.vb" type="System.Web.HttpForbiddenHandler" />
     <add verb="*" path="*.vbproj" type="System.Web.HttpForbiddenHandler" />
     <add verb="*" path="*.webinfo" type="System.Web.HttpForbiddenHandler" />
     <add verb="*" path="*.asp" type="System.Web.HttpForbiddenHandler" />
     <add verb="*" path="*.licx" type="System.Web.HttpForbiddenHandler" />
     <add verb="*" path="*.resx" type="System.Web.HttpForbiddenHandler" />
     <add verb="*" path="*.resources" type="System.Web.HttpForbiddenHandler" />
     <add verb="GET,HEAD" path="*" type="System.Web.StaticFileHandler" />
     <add verb="*" path="*" type="System.Web.HttpMethodNotAllowedHandler" />
 </httpHandlers>

El siguiente elemento httpHandlers predeterminado se configura en el archivo Web.config raíz en .NET Framework 2.0.

<httpHandlers>
     <add path="trace.axd" verb="*" type="System.Web.Handlers.TraceHandler" validate="True" />
     <add path="WebResource.axd" verb="GET" type="System.Web.Handlers.AssemblyResourceLoader" 
          validate="True" />
     <add path="*.axd" verb="*" type="System.Web.HttpNotFoundHandler" validate="True" />
     <add path="*.aspx" verb="*" type="System.Web.UI.PageHandlerFactory" validate="True" />
     <add path="*.ashx" verb="*" type="System.Web.UI.SimpleHandlerFactory" validate="True" />
     <add path="*.asmx" verb="*" type="System.Web.Services.Protocols.WebServiceHandlerFactory, 
System.Web.Services, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" validate="False" />
     <add path="*.rem" verb="*" type="System.Runtime.Remoting.Channels.Http.HttpRemotingHandlerFactory,
System.Runtime.Remoting, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" 
          validate="False" />
     <add path="*.soap" verb="*" type="System.Runtime.Remoting.Channels.Http.HttpRemotingHandlerFactory,
System.Runtime.Remoting, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" 
          validate="False" />
     <add path="*.asax" verb="*" type="System.Web.HttpForbiddenHandler" validate="True" />
     <add path="*.ascx" verb="*" type="System.Web.HttpForbiddenHandler" validate="True" />
     <add path="*.master" verb="*" type="System.Web.HttpForbiddenHandler" validate="True" />
     <add path="*.skin" verb="*" type="System.Web.HttpForbiddenHandler" validate="True" />
     <add path="*.browser" verb="*" type="System.Web.HttpForbiddenHandler" validate="True" />
     <add path="*.sitemap" verb="*" type="System.Web.HttpForbiddenHandler" validate="True" />
     <add path="*.dll.config" verb="GET,HEAD" type="System.Web.StaticFileHandler" validate="True" />
     <add path="*.exe.config" verb="GET,HEAD" type="System.Web.StaticFileHandler" validate="True" />
     <add path="*.config" verb="*" type="System.Web.HttpForbiddenHandler" validate="True" />
     <add path="*.cs" verb="*" type="System.Web.HttpForbiddenHandler" validate="True" />
     <add path="*.csproj" verb="*" type="System.Web.HttpForbiddenHandler" validate="True" />
     <add path="*.vb" verb="*" type="System.Web.HttpForbiddenHandler" validate="True" />
     <add path="*.vbproj" verb="*" type="System.Web.HttpForbiddenHandler" validate="True" />
     <add path="*.webinfo" verb="*" type="System.Web.HttpForbiddenHandler" validate="True" />
     <add path="*.licx" verb="*" type="System.Web.HttpForbiddenHandler" validate="True" />
     <add path="*.resx" verb="*" type="System.Web.HttpForbiddenHandler" validate="True" />
     <add path="*.resources" verb="*" type="System.Web.HttpForbiddenHandler" validate="True" />
     <add path="*.mdb" verb="*" type="System.Web.HttpForbiddenHandler" validate="True" />
     <add path="*.vjsproj" verb="*" type="System.Web.HttpForbiddenHandler" validate="True" />
     <add path="*.java" verb="*" type="System.Web.HttpForbiddenHandler" validate="True" />
     <add path="*.jsl" verb="*" type="System.Web.HttpForbiddenHandler" validate="True" />
     <add path="*.ldb" verb="*" type="System.Web.HttpForbiddenHandler"  validate="True" />
     <add path="*.dsdgm" verb="*" type="System.Web.HttpForbiddenHandler" validate="True" />
     <add path="*.ssdgm" verb="*" type="System.Web.HttpForbiddenHandler" validate="True" />
     <add path="*.lsad" verb="*" type="System.Web.HttpForbiddenHandler" validate="True" />
     <add path="*.ssmap" verb="*" type="System.Web.HttpForbiddenHandler" validate="True" />
     <add path="*.cd" verb="*" type="System.Web.HttpForbiddenHandler" validate="True" />
     <add path="*.dsprototype" verb="*" type="System.Web.HttpForbiddenHandler" validate="True" />
     <add path="*.lsaprototype" verb="*" type="System.Web.HttpForbiddenHandler" validate="True" />
     <add path="*.sdm" verb="*" type="System.Web.HttpForbiddenHandler" validate="True" />
     <add path="*.sdmDocument" verb="*" type="System.Web.HttpForbiddenHandler" validate="True" />
     <add path="*.mdf" verb="*" type="System.Web.HttpForbiddenHandler" validate="True" />
     <add path="*.ldf" verb="*" type="System.Web.HttpForbiddenHandler" validate="True" />
     <add path="*" verb="GET,HEAD,POST" type="System.Web.DefaultHttpHandler" validate="True" />
     <add path="*" verb="*" type="System.Web.HttpMethodNotAllowedHandler" validate="True" />
</httpHandlers>

Ejemplo

En el ejemplo siguiente se muestra cómo:

  • Asignar todas las solicitudes HTTP de archivos con extensión .New a la clase MyHandler.New

  • Asignar las solicitudes HTTP GET y HEAD de archivos con extensión .MyNewFileExtension a la clase MyHandler.MNFEHandler.

Ambas clases están en el ensamblado MyHandler del archivo MyHandler.dll.

<configuration>
   <system.web>
      <httpHandlers>
         <add verb="*" 
              path="*.New" 
              type="MyHandler.New,MyHandler"/>
         <add verb="GET,HEAD" 
              path="*.MyNewFileExtension" 
              type="MyHandler.MNFEHandler,MyHandler.dll"/>
     </httpHandlers>
   <system.web>
</configuration>

Información de elemento

Controlador de la sección de configuración

System.Web.Configuration.HttpHandlersSection

Miembro de configuración

SystemWebSectionGroup.HttpHandlers

Ubicaciones configurables

Machine.config

Web.config del nivel raíz

Web.config del nivel de aplicaciones

Web.config del nivel de directorio virtual o físico

Requisitos

Servicios de Microsoft Internet Information Server (IIS) 5.0, 5.1 ó 6.0

.NET Framework 1.0, 1.1 ó 2.0

Microsoft Visual Studio 2003 o Visual Studio 2005

Vea también

Tareas

Cómo: Bloquear los valores de configuración de ASP.NET

Conceptos

Información general sobre la configuración de ASP.NET

Controles de servidor Web ASP.NET y funciones del explorador

Proteger la configuración de ASP.NET

Escenarios de configuración de ASP.NET

Referencia

Elemento system.web (Esquema de configuración de ASP.NET)

Elemento <configuration>

Elemento add para httpHandlers (Esquema de configuración de ASP.NET)

Elemento clear para httpHandlers (Esquema de configuración de ASP.NET)

Elemento remove para httpHandlers (Esquema de configuración de ASP.NET)

System.Configuration

System.Web.Configuration

Otros recursos

Archivos de configuración de ASP.NET

Opciones de configuración de ASP.NET

Opciones de configuración generales (ASP.NET)

API de configuración de ASP.NET