Elemento add para httpHandlers (Esquema de configuración de ASP.NET)
Actualización: noviembre 2007
Agrega un controlador a una aplicación. Un controlador es una interfaz IHttpHandler o IHttpHandlerFactory que procesa las solicitudes de direcciones URL específicas.
Elemento <configuration>
Elemento system.web (Esquema de configuración de ASP.NET)
Elemento httpHandlers (Esquema de configuración de ASP.NET)
Elemento add para httpHandlers (Esquema de configuración de ASP.NET)
<add verb="verb list"
path="path/wildcard"
type="type,assemblyname"
validate="true|false" />
Atributos y elementos
Las siguientes secciones describen atributos, elementos secundarios y elementos primarios.
Atributos
Atributo |
Descripción |
---|---|
path |
Atributo necesario. Especifica que el atributo path puede contener una ruta de acceso a una dirección URL o una cadena comodín (por ejemplo, *.aspx). |
type |
Atributo necesario. Especifica una combinación de clase y ensamblado separada por comas. ASP.NET busca el archivo DLL del ensamblado primero en el directorio \bin privado de la aplicación y, después, en la caché de ensamblados del sistema. |
verb |
Atributo necesario. Especifica que la lista de verbos puede ser una lista de verbos HTTP separados por comas (por ejemplo, "GET, PUT, POST") o una asignación de secuencias de comandos de inicio (por ejemplo, el carácter comodín [*] [asterisco]). |
validate |
Atributo opcional. Si su valor es false, ASP.NET no intentará cargar la clase hasta que llegue la solicitud correspondiente. Esto mejora el tiempo de inicio aunque puede retrasar la aparición de un error. |
Elementos secundarios
Ninguno.
Elementos primarios
Elemento |
Descripción |
---|---|
configuration |
Especifica el elemento raíz de cada archivo de configuración utilizado por Common Language Runtime y las aplicaciones de .NET Framework. |
System.web |
Especifica el elemento raíz de la sección de configuración de ASP.NET. |
httpHandlers |
Asigna las solicitudes entrantes a la interfaz IHttpHandler o IHttpHandlerFactory adecuada, según la dirección URL y el verbo HTTP especificado en la solicitud. |
Comentarios
Las subdirectivas heredan los valores de configuración de <httpHandlers>.
Las directivas <add> se procesan secuencialmente, de arriba a abajo. Si dos o más subdirectivas <add> especifican la misma combinación de verbo y ruta de acceso, la última subdirectiva <add> prevalecerá sobre el resto.
Los Servicios de Microsoft Internet Information Server (IIS) tienen su propia forma de asignación de extensiones a las ISAPI. Para que la opción correspondiente a una extensión determinada tenga efecto, debe haberse asignado la ISAPI de ASP.NET a la extensión en IIS. En el caso de extensiones no estándar (distintas de .aspx, .asmx, .asax, etcétera), se debe configurar IIS.
Configuración predeterminada
El siguiente elemento add predeterminado se configura en el archivo Machine.config de .NET Framework 1.1.
<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"/>
El siguiente elemento add predeterminado se configura en el archivo Machine.config de .NET Framework 1,0.
<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" />
En la versión 2.0 de .NET Framework, el siguiente elemento add predeterminado se configura en el archivo Web.config raíz.
<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" />
Ejemplo
En el siguiente ejemplo de código se muestra cómo asignar todas las solicitudes HTTP de archivos con la extensión .New a la clase MyHandler.New, y las solicitudes HTTP GET y HEAD de archivos con la extensión .MyNewFileExtension a la clase MyHandler.MNFEHandler. Ambas clases se encuentran en el ensamblado MyHandler que está en el 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 |
|
Miembro de configuración |
|
Ubicaciones configurables |
Machine.config Web.config del nivel raíz Web.config del nivel de aplicaciones Web.config del nivel de directorios virtuales o físicos |
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 httpHandlers (Esquema de configuración de ASP.NET)
Elemento system.web (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)
Otros recursos
Archivos de configuración de ASP.NET
Opciones de configuración de ASP.NET