加入處理常式至應用程式中。處理常式是 IHttpHandler 或 IHttpHandlerFactory 介面,可處理特定 URL 的要求。
<configuration> 項目
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,然後在系統組件快取中搜尋。 |
verb |
必要屬性。 指定動作 (Verb) 清單可為逗號分隔的 HTTP 動作清單 (例如,"GET, PUT, POST") 或起始指令碼對應 (例如,星號 [*] 萬用字元)。 |
validate |
選擇性屬性。 如果為 false,則 ASP.NET 不會嘗試載入類別,直到實際的比對要求出現。這有潛在可能會延遲錯誤,但是確實能縮短啟動時間。 |
子項目
無。
父項目
項目 |
說明 |
---|---|
configuration |
指定 Common Language Runtime 和 .NET Framework 應用程式所使用之每個組態檔中的根項目 (Root Element)。 |
System.web |
指定 ASP.NET 組態區段的根項目。 |
httpHandlers |
依據要求中指定的 URL 和 HTTP 動作,將連入要求對應至適當的 IHttpHandler 或 IHttpHandlerFactory 介面。 |
備註
子目錄會繼承 "><httpHandlers> 設定。
而 "><add> 指示詞會依照由上而下的順序來處理。如果有兩個或更多的 "><add> 子指示詞指定相同的動作/路徑組合,則最後的 "><add> 會覆寫其他的組合。
Microsoft Internet Information Services (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.HttpRemotingHandlerFactorySystem.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>
項目資訊
組態區段處理常式 |
System.Web.Configuration..::.HttpHandlersSection |
組態成員 |
SystemWebSectionGroup..::.HttpHandlers |
可設定的位置 |
Machine.config 根層次的 Web.config 應用程式層級的 Web.config 虛擬或實體目錄層級的 Web.config |
需求 |
Microsoft Internet Information Services (IIS) 5.0、5.1 或 6.0 版 .NET Framework 1.0、1.1 或 2.0 版 Microsoft Visual Studio 2003 或 Visual Studio 2005 |