HttpHandler

Refer:Introduction to HTTP Handlers

 

ASP.NET HTTP handler 是一个ASP.NET应用程序响应客户端请求的过程的“终端”。最常见的handler是处理.aspx文件的ASP.NET page handler。

ASP.NET程序通过文件的扩展名对handler做映射,当请求一个文件时,先在映射表里面找对应的handler,如果找到了,就把请求交给这个handler去处理。

我们可以在ASP.NET程序中,自定义一些handler,用来处理指定扩展名的文件。

HttpHandler 可以访问应用程序的上下文,包括用户的身份,应用程序的状态和会话信息。当一个handler被请求,ASP.NET会调用这个handler的ProcessRequest方法,这个方法中会构建一个返回给客户端的response。所有的handler处理结束后,返回的response会通过程序中配置的Http modules,然后会调用modules中定义的生命周期事件。

 

ASP.NET中内建的handler:

ASP.NET Page Handler(*.aspx)

Web service handler(*.asmx)

ASP.NET user control handler(*.ascx)

Teace handler(trace.axd)

 

自定义HTTP Handler

如果想在自己的ASP.NET程序中处理一些指定扩展名的文件,首先需要先在IIS的元数据库中把该文件的扩展名映射给ISAPI,这样子该文件就会被交给ASP.NET处理了。

然后在程序中定义一个类来实现IHttpHandler。

IHttpHandler包含了三个成员,IsResuable属性用来指定是否把IHttpHandlerFactory对象(程序实际调用的handler)放到Handler pool中,放到pool中的好处是handler可以重用,这样能够提升性能。ProcessRequest方法用来处理request,并且返回response。

然后在程序的web.config文件中的<system.web>节点下配置文件扩展名和自定义handler的映射

 

 

posted @ 2014-03-17 16:36  Super猪  阅读(257)  评论(0编辑  收藏  举报