zoukankan      html  css  js  c++  java
  • ASP.NET 生命周期及管道事件

    Client(发送报文:请求行+请求头+空行+请求体) <------ Http 协议 ------> Server,由
     
    Http.sys 监听 Http 请求 -> WAS+Metabase(通过URL确定WebApp工作进程) ->
     
    W3WP.exe(一个应用程序池,加载Aspnet_IsAPI.dll) ->AppDomainFactory(构造 ApplicationManager)->ISAPIApplicationHost+ISAPIRuntime(由ApplicationManager创建)->
     
    ISAPIWorkerRequest(根据句柄内存块封装Http请求信息,IIS版本等等)+ HttpRuntime,然后
     
    HttpRuntime 开始接收ISAPIWorkerRequest,并如下进行处理:
     
    创建 HttpContext(包含HttpRequest/HttpResponse等等), 和通过HttpApplicationFactory 获取或创建HttpApplication(包含HttpContext),
     
    最后执行 HttpApplication 的 ProcessReuqest(...)。在执行过程中,所包含的管道事件,将按顺序触发。
     
    如果某些管道事件在 HttpModule 中有被重新注册,则执行相应事件处理程序。
     
    //context_xxxxxx 为 asp.net 管道事件,目的是逐步完善HttpContext内容
     
    Application_Start
     
    
    context_BeginRequest ////1.开始处理请求,httpModule 开始,在这之前所有实现IHttpModule的*.cs,将通过反射加载进来,并对module对象集合进行迭代,执行接口方法 Init(HttpApplication对象)
    context_AuthenticateRequest////2.授权验证请求,获取用户授权信息
    context_PostAuthenticateRequest////3.获取成功
    context_AuthorizeRequest////4.授权,一般来检查用户是否获取权限
    context_PostAuthorizeRequest////5.获得请求
    context_ResolveRequestCache////6.获取页面缓存结果
    context_PostResolveRequestCache////7.已获取缓存    当前请求映射到MvcHandler
    context_PostMapRequestHandler////8.创建页面对象:创建最终处理当前http请求的handler实例
    Session_Start//执行Session
    context_AcquireRequestState////9.获取Session
    context_PostAcquireRequestState////10.获得Session
    context_PreRequestHandlerExecute////11.准备执行处理程序,在这之前所有实现IHttpHandler的*.cs,将通过反射加载进来
    MyHandler//执行处理程序, 并且开始进入页面生命周期,对handler对象集合进行迭代,执行接口方法 ProcessRequest(HttpContext对象)
    context_PostRequestHandlerExecute ////12.已经执行了处理程序
    context_ReleaseRequestState////13.释放请求的状态
    context_PostReleaseRequestState////14.已经释放了请求状态
    context_UpdateRequestCache////15.更新缓存
    context_PostUpdateRequestCache////16.已经更新了缓存
     
    context_LogRequest////17.请求的日志操作
    context_PostLogRequest;////18.已经完成了请求的日志操作
     
    context_EndRequest////19.本次请求处理完成,httpModule 结束
     
    
    context_PreSendRequestHeaders////20.准备向客户端发送请求头数据
    context_PreSendRequestContent////21.准备向客户端发送请求体数据
  • 相关阅读:
    6.12白书第五章图论总结——司雨寒
    【司雨寒】最短路专题总结
    十三 十四周总结
    13周总结--苏康
    JuneX_13
    12总结--苏康
    十二周总结
    每周总结(5.30)——何贤拓
    进阶实验4-3.1 家谱处理 (30分)
    进阶实验2-3.1 海盗分赃 (25分)--递推
  • 原文地址:https://www.cnblogs.com/jameslif/p/5057765.html
Copyright © 2011-2022 走看看