• IIS 工作原理之非托管代码旅程(一)


    • IIS6改变

      IIS6可以为每个不同的虚拟目录创建不同的程序池,这样缩小了IIS的Application Pool的颗粒度,不同的虚拟目录之间是互不影响的。

    • IIS6(和IIS7经典模式)与IIS7集成模式最大的区别

    IIS6(和IIS7经典模式)是通过aspnet_isapi.dll(internet server application programming   interface )即IIS应用程序接口来处理。

    而IIS7集成模式之后,不需要通过aspnet_isapi.dll

    • 名词解释:

    Http.sys:负责侦听(Listen)来自于外部的Http请求,根据请求的Url,并通过WAS监视程序获取applicationHost.Config,找到相应的应用程序池(Application Pool),当Http请求完成以后,它又负责将处理结果发送出去。

    http.sys内部建立一个缓冲区,将最近的请求处理结果保存起来。

    ApplicationPool:应用程序池,所有站点的处理都会发生在这里进程里,包括ISAPI dll的执行,当应用程序池接受到http请求后,交由程序池中运行的woker process:w3wp.exe(工作进程)来处理接下来的Http请求。

    Worker Process:当工作进程接受到请求后,首先根据后缀名加载ISAPI拓展(如:aspx对应的映射是aspnet_isapi.dll),工作进程加载aspnet_isapi.dll后,由aspnet_isapi.dll负责加载Asp.net的运行环境CLR。ISAPI拓展是非托管代码和托管代码之间的桥梁。

    WAS(Web Admin Service):这是一个监控程序,它一方面监控applicationHost.config,另一方面也负责监控应用程序池(Application Pool)中的工作者进程的工作状态,必要时它会关闭一个老的工作进程并创建一个新的取而代之。

    • IIS非托管旅程地图

         

                                                1、当客户端浏览器开始 HTTP 请求一个WEB 服务器的资源时,HTTP.sys 拦截到这个请求。

                                                2、HTTP.sys 联系 WAS服务 获取配置信息。

                                                3、WAS 向配置存储中心(applicationHost.config)请求配置信息。

                                                4、WWW 服务接收到配置信息,配置信息指类似应用程序池配置信息,站点配置信息等等。

                                                5、WWW 服务使用配置信息去配置 HTTP.sys 处理策略。                                            

      6、WAS为请求创建一个进程(如果不存在的话)。

      7、工作者进程处理请求并对HTTP.sys做出响应。

      8、客户端接受到处理结果信息。

    参考:http://www.cnblogs.com/fengzheng/p/3668283.html

  • 相关阅读:
    ClickHouse
    SparkSql运行原理详细解析
    Hive优化一
    低代码平台,到底能给企业带来什么?
    观点:BPM已经过时了?
    一个好产品,只是帮用户做好了一件事
    高科技电子行业的信息化怎么做?
    【重要!】告K2老客户书
    移动互联网公司如何将BPM流程管理变身移动化?
    BPM业务流程管理与SAP如何更好集成整合?
  • 原文地址:https://www.cnblogs.com/cainiaoguoshi/p/3676651.html
Copyright © 2020-2023  润新知