zoukankan      html  css  js  c++  java
  • ASP.NET简单运行原理

    如图所示:

    1.一个ASP.NET的应用程序是开始于IIS.

    2.IIS检测如果是ASP.NET应用程序会将控制权传递给ISAPI,名叫ASPNET_ISAIP.DLL的文件

    3.ISAPI接受到处理请求时,启动一个ASP.NET工作进程。并且将控制权传递给ASPNET_WP.EXE文件

    4.ASPNET_WP就会建立一个APPDOMAIN,并且将被请求的ASP.NET应用所需的Assembly(就是那些DLL,例如System.Web.DLL等)载入到APPDOMAIN中,ASPNET_WP不光负责建立APPDOMAIN,如果已经存在的话,就直接使用已经存在的,另外,它在APPDOMAIN建立后,还会将请求转发至对应的APPDOMAIN中的ISAPIRuntime对象。(Isapiruntime对象是APPDOMAIN的一部分)。ISAPIRUNTIME专门负责解出请求的必要信息,它将信息和请求转交给HttpRuntime。这里,需要说明的是IsapiRuntime是一个类,它的全称是System.Web.Hosting.ISAPIRuntime,而HttpRuntime也是一个类,它的全称是System.Web.HttpRuntime。因此,可以说,这两个对象是APPDOMAIN运行环境的一部分,在ASPNET_WP建立APPDOMAIN的同时,也会作为运行环境来建立这两个对象.

    5.当APPDOMAIN初始化完成后,接下来就需要建立会话了吧,因此,请求由HttpRuntime来接受,HttpRunTime主要的工作便是为每一个提出请求的客户建立一个HttpContext对象.每一个访问者有各自的HttpContext对象和HttpSession对象,这些对象,你可以在.NET FRAMEWORK库中找到对应的类名,像System.Web.HttpContext,System.Web.HttpSessionState等.HttpRuntime负责创建HttpContext和HttpSession,httpContext负责管理httpSession。HttpRuntime除了创建上面的对象外,还要创建HttpApplication.至于创建Application对象的过程,是比较复杂的.

    6.接下来请求控制权交给HttpApplication, HttpApplication调用ProcessRequest方法来处理用户请求,此方法会调用对应的HttpHandler来处理用户请求,HttpHandler根据用户请求的文件的扩展名处理请求,并把请求的结果,也就是HTML发送到客户浏览器

  • 相关阅读:
    leetcode 673. 最长递增子序列的个数 java
    leetcode 148. 排序链表 java
    leetcode 98. 验证二叉搜索树 java
    leetcode 29. 两数相除 java
    leetcode 234. 回文链表 java
    Valid Palindrome LeetCode Java
    Single Number II LeetCode Java
    Single Number LeetCode java
    Search in Rotated Sorted Array II LeetCode Java
    Search in Rotated Sorted Array leetcode java
  • 原文地址:https://www.cnblogs.com/michaelShao/p/1672789.html
Copyright © 2011-2022 走看看