Partager via


httpHandlers, élément (Schéma des paramètres ASP.NET)

Mise à jour : novembre 2007

Mappe les demandes entrantes au gestionnaire approprié, en fonction de l'URL et du verbe HTTP spécifiés dans la demande. Cet élément peut être déclaré à tout niveau dans la hiérarchie de configuration.

<configuration>, élément
  system.web, élément (Schéma des paramètres ASP.NET)
    httpHandlers, élément (Schéma des paramètres ASP.NET)

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

Attributs et éléments

Les sections suivantes décrivent des attributs, des éléments enfants et des éléments parents.

Attributs

Aucun.

Éléments enfants

Sous-balise

Description

add

Élément facultatif.

Spécifie le mappage verb/path à un gestionnaire.

clear

Élément facultatif.

Supprime tous les mappages de gestionnaires actuellement configurés ou hérités.

remove

Élément facultatif.

Supprime un mappage verb/path à un gestionnaire. La directive remove doit correspondre exactement au mappage verb/path d'une directive add précédente. Les caractères génériques ne sont pas pris en charge.

Éléments parents

Élément

Description

configuration

Spécifie l'élément racine dans chaque fichier de configuration utilisé par le Common Language Runtime et les applications .NET Framework.

system.web

Spécifie l'élément racine de la section de configuration ASP.NET.

Notes

Les paramètres <httpHandlers> sont hérités par les sous-répertoires de l'application.

Les directives <add> sont traitées de façon séquentielle, par ordre décroissant. Si plusieurs éléments <add> spécifient la même combinaison verb/path, la dernière balise <add> se substitue aux autres.

Remarque :

Microsoft Internet Information Services (IIS) utilise un modèle qui lui est propre pour mapper des extensions à des applications ISAPI. Pour que le mappage entre une extension d'application donnée et son gestionnaire soit pris en compte, l'extension doit être mappée dans IIS à l'ISAPI ASP.NET. Dans le cas d'une extension non standard, telle qu'une extension personnalisée, vous devez configurer IIS en conséquence.

Configuration par défaut

L'élément httpHandlers par défaut est configuré dans le fichier Machine.config de la version 2.0 du .NET Framework.

<httpHandlers />

L'élément httpHandlers par défaut est configuré dans le fichier Machine.config de la version 1.1 du .NET Framework.

Remarque :

System.Web.HttpForbiddenHandler est un type interne qui publie l'erreur HTTP 403 « Accès refusé/interdit » lorsqu'une tentative d'accès à une ressource défendue est effectuée.

System.Web.StaticFileHandler est un autre type interne qui gère l'accès aux fichiers spécifiés. En cas de problèmes d'accès, il génère l'une des erreurs suivantes : erreur HTTP 401 « Non autorisé », erreur HTTP 403 « Accès refusé/interdit » ou erreur HTTP 404 « Fichier ou répertoire introuvable ».

<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>

L'élément httpHandlers par défaut est configuré dans le fichier Machine.config de la version 1.0 du .NET Framework.

<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>

L'élément httpHandlers par défaut suivant est configuré dans le fichier Web.config racine dans le .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>

Exemple

L'exemple suivant montre comment effectuer ce qui suit :

  • Mapper toutes les demandes HTTP relatives aux fichiers avec l'extension .New à la classe MyHandler.New

  • Mapper les demandes HTTP GET et HEAD concernant les fichiers avec l'extension .MyNewFileExtension à la classe MyHandler.MNFEHandler.

Les deux classes figurent dans l'assembly MyHandler situé dans le fichier 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>

Informations sur les éléments

Gestionnaire de section de configuration

System.Web.Configuration.HttpHandlersSection

Membre de configuration

SystemWebSectionGroup.HttpHandlers

Emplacements configurables

Machine.config

Web.config racine

Web.config au niveau de l'application

Web.config de niveau répertoire virtuel ou physique

Configuration requise

Microsoft Internet Information Services (IIS) version 5.0, 5.1 ou 6.0

.NET Framework version 1.0, 1.1 ou 2.0

Microsoft Visual Studio 2003 ou Visual Studio 2005

Voir aussi

Tâches

Comment : verrouiller des paramètres de configuration ASP.NET

Concepts

Vue d'ensemble de la configuration ASP.NET

Fonctionnalités des contrôles serveur Web ASP.NET et du navigateur

Sécurisation de la configuration ASP.NET

Scénarios de configuration ASP.NET

Référence

system.web, élément (Schéma des paramètres ASP.NET)

<configuration>, élément

add, élément de httpHandlers (Schéma des paramètres ASP.NET)

clear, élément de httpHandlers (Schéma des paramètres ASP.NET)

remove, élément de httpHandlers (Schéma des paramètres ASP.NET)

System.Configuration

System.Web.Configuration

Autres ressources

Fichiers de configuration ASP.NET

Paramètres de configuration ASP.NET

Paramètres généraux de configuration (ASP.NET)

API de configuration ASP.NET