当Request到达IIS Web Server时,IIS通过请求资源文件的后缀决定如何处理请求。如果是静态内容,如Html,CSS等,IIS直接响应并且返回HTML响应到客户端。如果是asp后缀,那么ASP引擎会处理。如果是aspx,那么ASP.NET引擎就发挥作用了。如果是asmx后缀,那么ASP.NET会生成SOAP Response并返回。对于动态内容,IIS把处理功能通过ISAPI接口委托给ASP.NET引擎。后者可以使用不同种类的HTTP Handler来处理特定类型的请求。
在IIS控制台上,开发者可以配置HTTP Handler。具体:Start->All Program->Administrative Tools->IIS Manager->Local Machine->Web Sites->Properties右键菜单->Home Directory->Congiguration在这个控制界面上,列出了所有的资源后缀和HTTPHandler直接的绑定关系。
开发者可以在C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\CONFIG目录下的web.config中查看。很奇怪的是:在界面上居然看不到aspx项的绑定,但是在web.config中可以看到。也许这个是默认的吧。就不需要列出了。所有的HTTPHandler需要实现IHttpHandler接口。该接口中的方法ProcessRequest(HttpContext context)负责如何给客户端返回Response。对于ASP.NET页面来说,Page类本质上就是一个HttpHandler实例。