using System; using System.Web; using System.Web.UI; using System.Web.SessionState; namespace Cuyahoga.Web.HttpHandlers { /// <summary> /// This class handles all aspx page requests for Cuyahoga. /// </summary> public class PageHandler : IHttpHandler, IRequiresSessionState { #region IHttpHandler Members /// <summary> /// Process the aspx request. This means (eventually) rewriting the url and registering the page /// in the container. /// </summary> /// <param name="context"></param> public void ProcessRequest(HttpContext context) { string rawUrl = context.Request.RawUrl; DateTime startTime = DateTime.Now; // Obtain the handler for the current page string aspxPagePath = rawUrl.Substring(0, rawUrl.IndexOf(".aspx") + 5); IHttpHandler handler = PageParser.GetCompiledPageInstance(aspxPagePath, null, context); // Process the page just like any other aspx page handler.ProcessRequest(context); TimeSpan duration = DateTime.Now - startTime; context.Response.Write(String.Format("Request finshed. Total duration: {0} ms.", duration.Milliseconds)); } /// <summary> /// /// </summary> public bool IsReusable { get { return true; } } #endregion } }
webconfig中注册HttpHandler
<httpHandlers> <add verb="*" path="*.aspx" type="Cuyahoga.Web.HttpHandlers.PageHandler,Cuyahoga.Web" /> </httpHandlers>