httpHandlers-Element (ASP.NET-Einstellungsschema)

Ordnet eingehende Anforderungen dem entsprechenden Handler zu, und zwar abhängig von der angegebenen URL und dem HTTP-Verb der Anforderung. Dieses Element kann auf jeder Ebene der Konfigurationshierarchie deklariert werden.

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

Attribute und Elemente

In den folgenden Abschnitten werden Attribute, untergeordnete Elemente und übergeordnete Elemente beschrieben.

Attribute

Keine.

Untergeordnete Elemente

Untertag

Beschreibung

add

Optionales Element

Gibt die verb/path-Zuordnung zu einem Handler an.

clear

Optionales Element

Entfernt alle Handlerzuordnungen, die aktuell konfiguriert oder geerbt wurden.

remove

Optionales Element

Entfernt eine verb/path-Zuordnung zu einem Handler. Die remove-Direktive muss genau mit der verb/path-Kombination einer vorherigen add-Direktive übereinstimmen. Platzhalterzeichen werden nicht unterstützt.

Übergeordnete Elemente

Element

Beschreibung

configuration

Gibt das Stammelement in jeder Konfigurationsdatei an, die von der Common Language Runtime und den .NET Framework-Anwendungen verwendet wird.

system.web

Gibt das Stammelement für den ASP.NET-Konfigurationsabschnitt an.

Hinweise

Die <httpHandlers>-Einstellungen werden von den Unterverzeichnissen der Anwendung geerbt.

Die add-Direktiven werden der Reihenfolge nach von oben nach unten verarbeitet. Wenn in zwei oder mehr <add>-Elementen dieselbe verb/path-Kombination angegeben wird, überschreibt das letzte <add> alle anderen.

HinweisHinweis

Für Microsoft Internetinformationsdienste (IIS) gilt ein eigenes Modell für die Zuordnung von Erweiterungen zu ISAPIs.Damit die Zuordnung einer gegebenen Anwendungserweiterung zu deren Handler wirksam wird, muss die Erweiterung in IIS auf ASP.NET ISAPI zugeordnet sein.Für nicht standardmäßige Erweiterungen, z. B. benutzerdefinierte Erweiterungen, müssen Sie IIS entsprechend konfigurieren.

Standardkonfiguration

Das folgende httpHandlers-Standardelement wird in der Datei Machine.config von .NET Framework, Version 2.0, konfiguriert.

<httpHandlers />

Das folgende httpHandlers-Standardelement wird in der Datei Machine.config von .NET Framework, Version 1,1, konfiguriert.

HinweisHinweis

System.Web.HttpForbiddenHandler ist ein interner Typ, der den HTTP-Fehler 403 ("Verboten: Zugriff verweigert") ausgibt, wenn versucht wird, auf eine verbotene Ressource zuzugreifen.

System.Web.StaticFileHandler ist ein weiterer interner Typ, der den Zugriff auf angegebene Dateien behandelt.Bei Zugriffsverstößen generiert er einen der folgenden Fehler: HTTP-Fehler 401 "Nicht autorisiert"; HTTP-Fehler 403 "Verboten: Zugriff verweigert" oder HTTP-Fehler 404 "Datei oder Verzeichnis wurde nicht gefunden".

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

Das folgende httpHandlers-Standardelement wird in der Datei Machine.config von .NET Framework, Version 1.0, konfiguriert.

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

Das folgende httpHandlers-Standardelement wird in der Stammdatei Web.config in .NET Framework 2.0 konfiguriert.

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

Beispiel

Das folgende Beispiel veranschaulicht, wie die folgenden Aufgaben ausgeführt werden:

  • Zuordnen aller HTTP-Anforderungen für Dateien mit der Dateinamenerweiterung .New zur MyHandler.New-Klasse.

  • Zuordnen der HTTP-Anforderungen GET und HEAD für Dateien mit der Dateinamenerweiterung .MyNewFileExtension zur Klasse MyHandler.MNFEHandler..

Beide Klassen befinden sich in der Assembly MyHandler in der Datei 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>

Elementinformationen

Konfigurationsabschnittshandler

System.Web.Configuration.HttpHandlersSection

Konfigurationsmember

SystemWebSectionGroup.HttpHandlers

Konfigurierbare Speicherorte

Machine.config

Web.config auf der Stammebene

Web.config auf der Anwendungsebene

Web.config auf der Ebene virtueller oder physikalischer Verzeichnisse

Anforderungen

Microsoft Internetinformationsdienste (IIS), Version 5.0, 5.1 oder 6.0

.NET Framework, Version 1.0, 1.1 oder 2.0

Microsoft Visual Studio 2003 oder Visual Studio 2005

Siehe auch

Aufgaben

Gewusst wie: Sperren von ASP.NET-Konfigurationseinstellungen

Referenz

system.web-Element (ASP.NET-Einstellungsschema)

<configuration>-Element

add-Element für httpHandlers (ASP.NET-Einstellungsschema)

clear-Element für httpHandlers (ASP.NET-Einstellungsschema)

remove-Element für httpHandlers (ASP.NET-Einstellungsschema)

System.Configuration

System.Web.Configuration

Konzepte

Übersicht über die ASP.NET-Konfiguration

ASP.NET-Webserversteuerelemente und Browserfunktionen

Absichern der ASP.NET-Konfiguration

ASP.NET-Konfigurationsszenarios

Weitere Ressourcen

ASP.NET-Konfigurationsdateien

ASP.NET-Konfigurationseinstellungen

Allgemeine Konfigurationseinstellungen (ASP.NET)

ASP.NET-Konfigurations-API