add-Element für httpHandlers (ASP.NET-Einstellungsschema)
Fügt einer Anwendung einen Handler hinzu. Ein Handler ist eine IHttpHandler-Schnittstelle oder eine IHttpHandlerFactory-Schnittstelle, die Anforderungen für bestimmte URLs verarbeitet.
<add verb="verb list"
path="path/wildcard"
type="type,assemblyname"
validate="true|false" />
Attribute und Elemente
In den folgenden Abschnitten werden Attribute, untergeordnete Elemente und übergeordnete Elemente beschrieben.
Attribute
Attribut |
Beschreibung |
---|---|
path |
Erforderliches Attribut. Gibt an, dass das path-Attribut entweder einen einzelnen URL-Pfad oder eine einfache Platzhalterzeichenfolge (z. B. *.aspx) enthalten kann. |
type |
Erforderliches Attribut. Gibt eine durch Trennzeichen getrennte Klassen-/Assemblykombination an. ASP.NET sucht nach der Assembly-DLL zunächst im privaten Verzeichnis \bin der Anwendung und anschließend im Assemblycache des Systems. |
verb |
Erforderliches Attribut. Gibt an, dass die Verbliste entweder eine durch Trennzeichen getrennte Liste von HTTP-Verben sein kann, z. B. "GET, PUT, POST", oder eine Startskriptzuordnung, z. B. das Platzhalterzeichen * (Sternchen). |
validate |
Optionales Attribut. Im Fall von false lädt ASP.NET die Klasse erst bei Eingang der tatsächlich übereinstimmenden Vergleichsanforderung. Dadurch wird der Fehler zwar potenziell verzögert, die Startzeit jedoch verbessert. |
Untergeordnete Elemente
Keine.
Ü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. |
httpHandlers |
Ordnet eingehende Anforderungen in Abhängigkeit von der URL und dem in der Anforderung angegebenen HTTP-Verb der entsprechenden IHttpHandler-Schnittstelle oder IHttpHandlerFactory-Schnittstelle zu. |
Hinweise
Die <httpHandlers>-Einstellungen werden an Unterdirektiven vererbt.
Die <add>-Direktiven werden der Reihenfolge nach von oben nach unten verarbeitet. Wenn in zwei oder mehr <add>-Unterdirektiven dieselbe verb/path-Kombination angegeben wird, überschreibt die letzte <add>-Unterdirektive alle anderen.
Für Microsoft Internetinformationsdienste (IIS) gilt ein eigener Modus für die Zuordnung von Erweiterungen zu ISAPIs. Damit die Einstellungen für eine gegebene Erweiterung in diesem Abschnitt wirksam werden, muss die Erweiterung in IIS der ASP.NET-ISAPI zugeordnet werden. Bei nicht standardmäßigen Erweiterungen (anderen Dateien als ASPX-, ASMX-, ASAX-Dateien usw.) müssen Sie IIS konfigurieren.
Standardkonfiguration
Das folgende add-Standardelement wird in der Datei Machine.config von .NET Framework, Version 1.1, konfiguriert.
<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"/>
Das folgende add-Standardelement wird in der Datei Machine.config von .NET Framework, Version 1,0, konfiguriert.
<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" />
Das folgende add-Standardelement wird in der Stammdatei Web.config von .NET Framework, Version 2.0, konfiguriert.
<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" />
Beispiel
Im folgenden Codebeispiel wird veranschaulicht, wie alle HTTP-Anforderungen von Dateien mit der Dateinamenerweiterung .New der MyHandler.New-Klasse zugeordnet und HTTP-GET-Anforderungen sowie HTTP-HEAD-Anforderungen von Dateien mit der Dateinamenerweiterung .MyNewFileExtension der MyHandler.MNFEHandler.-Klasse zugeordnet werden. Beide Klassen befinden sich in der MyHandler-Assembly, die sich wiederum in der Datei MyHandler.dll befindet.
<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 |
|
Konfigurationsmember |
|
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
httpHandlers-Element (ASP.NET-Einstellungsschema)
system.web-Element (ASP.NET-Einstellungsschema)
clear-Element für httpHandlers (ASP.NET-Einstellungsschema)
remove-Element für httpHandlers (ASP.NET-Einstellungsschema)
Konzepte
Übersicht über die ASP.NET-Konfiguration
ASP.NET-Webserversteuerelemente und Browserfunktionen
Absichern der ASP.NET-Konfiguration
ASP.NET-Konfigurationsszenarios
Weitere Ressourcen
ASP.NET-Konfigurationseinstellungen