将处理程序添加到应用程序中。处理程序是处理对特定 URL 的请求的
??system.web 元素(ASP.NET 设置架构)
????httpHandlers 元素(ASP.NET 设置架构)
??????httpHandlers 的 add 元素(ASP.NET 设置架构)
<add verb="verb list" path="path/wildcard" type="type,assemblyname" validate="true|false" /> |
属性和元素
下面几部分描述了属性、子元素和父元素。
属性
属性 | 说明 |
---|---|
path |
必选的属性。 指定路径属性可以包含单个 URL 路径或简单的通配符字符串(如 *.aspx)。 |
type |
必选的属性。 指定逗号分隔的类/程序集组合。ASP.NET 首先在应用程序的专用 \bin 目录中搜索程序集 DLL,然后在系统程序集缓存中搜索程序集 DLL。 |
verb |
必选的属性。 指定谓词列表可以是逗号分隔的 HTTP 谓词列表(例如,"GET, PUT, POST"),也可以是开始脚本映射(如星号 [*] 通配符)。 |
validate |
可选的属性。 如果为 false,则 ASP.NET 在实际匹配请求到达之前将不尝试加载该类。这有可能延迟错误,但减少了启动时间。 |
子元素
无。
父元素
元素 | 说明 |
---|---|
configuration |
指定公共语言运行库和 .NET Framework 应用程序所使用的每个配置文件中的根元素。 |
System.web |
为 ASP.NET 配置节指定根元素。 |
httpHandlers |
根据在请求中指定的 URL 和 HTTP 谓词,将传入的请求映射到相应的 IHttpHandler 或 IHttpHandlerFactory 接口。 |
备注
<httpHandlers> 设置由子指令继承。
<add> 指令按由上而下的顺序进行处理。如果两个或多个 <add> 子指令指定相同的谓词/路径组合,则最后一个 <add> 会重写其他所有子指令。
Microsoft Internet 信息服务 (IIS) 有自己的 ISAPI 映射扩展模式。为使该节中的给定扩展的设置生效,该扩展必须在 IIS 中被映射到 ASP.NET ISAPI。对于非标准扩展(除 .aspx、.asmx、.asax 等之外的扩展),用户必须配置 IIS。
默认配置
下面的默认 add 元素在 .NET Framework 版本 1.1 的 Machine.config 文件中配置。
? | ![]() |
---|---|
<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"/> |
下面的默认 add 元素在 .NET Framework 版本 1.0 的 Machine.config 文件中配置。
? | ![]() |
---|---|
<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" /> |
下面的默认 add 元素在 .NET Framework 版本 2.0 的根 Web.config 文件中配置。
? | ![]() |
---|---|
<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" /> |
示例
下面的代码示例演示如何将对文件扩展名为 .New
的文件的所有 HTTP 请求映射到类 MyHandler.New
,将对文件扩展名为 .MyNewFileExtension
的文件的 HTTP GET 和 HEAD 请求映射到类 MyHandler.MNFEHandler.
这两个类都在文件 MyHandler.dll
的程序集 MyHandler
中。
? | ![]() |
---|---|
<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> |
元素信息
配置节处理程序 |
|
配置成员 |
|
可配置的位置 |
Machine.config 根级别的 Web.config 应用程序级别的 Web.config 虚拟或物理目录级别的 Web.config |
要求 |
Microsoft Internet 信息服务 (IIS) 版本 5.0、5.1 或 6.0 .NET Framework 版本 1.0、1.1 或 2.0 Microsoft Visual Studio 2003 或 Visual Studio 2005 |
请参见
任务
参考
httpHandlers 元素(ASP.NET 设置架构)system.web 元素(ASP.NET 设置架构)
httpHandlers 的 clear 元素(ASP.NET 设置架构)
httpHandlers 的 remove 元素(ASP.NET 设置架构)
概念
其他资源
ASP.NET 配置设置
常规配置设置 (ASP.NET)
