什么是 ASP.NET 中的 HttpHandler?为什么和如何使用它?
什么是 ASP.NET 中的 HttpHandler?为什么和如何使用它?
HttpHandler
会被调用吗?这是因为该页面派生自 HttpHandler
,然后创建 Page
对象,接着调用页面事件?是这样的吗?感谢您的耐心。 - Imad AlazaniHttpHandler
(或IHttpHandler
)基本上是负责提供内容的任何东西。ASP.NET页面(aspx)是一种处理程序。
例如,您可以编写自己的处理程序,从数据库中提供图像等内容,而不是从Web服务器本身提供,或编写一个简单的POX服务(而不是SOAP/WCF等)。
HttpHandler
就会被调用?这是因为该页面派生自 HttpHandler
,然后创建 Page
对象,接着调用 Page Events
吗?是这样吗? - Imad AlazaniHttpHandler示例
ASP.NET 2.0中的HTTP处理程序
处理程序负责满足浏览器的请求。浏览器管理的请求是通过文件扩展名或直接调用处理程序来处理的。在Asp.Net中,服务于传入Http请求的低级别请求和响应API是Http Handlers。所有处理程序都实现了IHttpHandler接口,该接口位于System.Web命名空间中。处理程序有点类似于Internet Server Application Programming Interface (ISAPI) 扩展。
您可以实现IHttpHandler接口来创建同步处理程序,也可以实现IHttpAsyncHandler接口来创建异步处理程序。这些接口要求您实现ProcessRequest方法和IsReusable属性。ProcessRequest方法处理实际的请求处理,而布尔值IsReusable属性指定您的处理程序是否可以池化以增加性能或每个请求需要一个新的处理程序。
.ashx文件扩展名保留供自定义处理程序使用。如果您使用.ashx文件扩展名创建自定义处理程序,则它将自动在IIS和ASP.NET中注册。如果您选择使用其他文件扩展名,则必须在IIS和ASP.NET中注册该扩展名。使用其他扩展名的优点是可以将多个文件扩展名分配给一个处理程序。
配置HTTP处理程序
配置节处理程序负责将传入的URL映射到IHttpHandler或IHttpHandlerFactory类。它可以在计算机、站点或应用程序级别声明。子目录继承这些设置。管理员使用指令来配置配置节。指令按从上到下的顺序逐个解释和处理。使用以下语法进行配置节处理程序:
创建HTTP处理程序
要创建HTTP处理程序,必须实现IHttpHandler接口。IHttpHandler接口有一个方法和一个属性,具有以下签名:
void ProcessRequest(HttpContext); bool IsReusable {get;}ASP.NET HTTP
处理程序是响应ASP.NET Web应用程序请求运行的进程(通常称为“终点”)。最常见的处理程序是处理.aspx文件的ASP.NET页面处理程序。当用户请求一个.aspx文件
时,该请求通过页面处理程序进行处理。System.Web.IHttpHandler
接口的类都成为HttpHandler
。这个类作为进程响应于对ASP.NET站点的请求运行。System.Web.IHttpHandler
接口的类)处理请求。