Asp.Net内部编译原理

        当我们请求WEB站点的页面时,服务器端实际的执行顺序是:
        第一  IIS捕获请求并检查分析
        第二 当IIS捕获请求信息之后,在不同的进程模型下进入CLR内部进行处理
        一 IIS捕获请求并检查分析
         很显然,当我们请求某个WEB站点时,服务器上的IIS会通过我们请求的URL来获取与之相关的信息。
         IIS捕获请求并经过检查分析,之后映射到外部模块进行真正的处理。这个外部模块就是aspnet_isapi,他是一个动态连接库文件,是IIS Internet服务器应用程序编程接口,他实现了特殊的协议,可与IIS进行文件通信。
       而aspnet_isapi负责的任务和随后的处理方式与所用的进程模型密切相关,所谓进程模型是对请求进行处理和为浏览器生成响应的一系列步骤。
       我们现在使用的进程模型大致上分为IIS5.x和IIS6.0,具体分析如下:
       1。 IIS5.x
        这里主要涉及到aspnet_isapi扩展和工作进程aspnet_wp.exe
        aspnet_isapi扩展充当一个调度程序,他将请求信息通过管道发送给工作进程,而所有活动的WEB应用程序共享相同的工作进程副本。
        该模型默认在aspnet帐户下运行,安装.net framework是自动生成该帐户。
        2。IIS6.0
        他主要涉及到http.sys和w3wp.exe
        http.sys他是一个监听程序,收集请求信息,并将其发送给该请求对应的WEB应用程序所属的应用程序池的队列中,之后工作进程从队列中取得要处理的请求进行处理。
        IIS6.0是以应用程序池这个概念为中心的,应用程序池是一组共享相同工作进程副本的WEB应用程序。
         该模型默认在network service帐户下运行,安装.net framework是自动生成该帐户。
       二 在工作进程内对请求进行处理
       虽然每个进程模型捕获请求的方式不同,但到了工作进程以后其处理几乎一致。
       请求(页面)-->工作进程(某个应用程序对应的)-->httpruntime(初始化asp.net缓寸和http环境)-->应用程序工厂(根据请求的url选择或创建响应的应用程序对象)
-->应用程序对象(根据请求的对象选择处理程序工厂)-->处理程序工厂(选择或创建处理该请求所需要的类)-->处理该请求所需要的类(该类实现了ihttphandler接口)-->
调用该类实例的processrequest方法来做真正的处理。
    
写这篇文章的目的是让大家能从通俗的角度去认识Asp.Net内部编译原理~
  • 0
    点赞
  • 0
    收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
©️2022 CSDN 皮肤主题:大白 设计师:CSDN官方博客 返回首页
评论

打赏作者

JL99000

你的鼓励将是我创作的最大动力

¥2 ¥4 ¥6 ¥10 ¥20
输入1-500的整数
余额支付 (余额:-- )
扫码支付
扫码支付:¥2
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值