IIS5IIS6IIS7的ASP.net申请解决过程
【IT168 技术文章】ASP.NET是一个十分强大的构建Web运用的平台,它提供了极大的灵敏性和才能致使于可能用它来构建一切类型的Web运用。
绝大少数的人只相熟高层的框架如: WebForms 和 WebServices --这些都在ASP.NET层次构造在最高层。
这篇文章的材料搜集整顿自各种微软公开的文档,经过比较 IIS5、IIS6、IIS7 这三代 IIS 对申请的解决过程, 让咱们相熟 ASP.NET的底层机制 并对申请(request)是怎样从Web服务器传送到ASP.NET运转时有所了解。经过对底层机制的了解,可能让咱们对 ASP.net 有更深的理解。
IIS 5 的 ASP.net 申请解决过程
图的解释:
IIS 5.x 一个分明的特色就是 Web Server 和真正的 ASP.NET Application 的分离。作为 Web Server 的IIS运转在一个名为 InetInfo.exe 的进程上,InetInfo.exe 是一个Native Executive,并不是一个托管的程序,而咱们真正的 ASP.NET Application 则是运转在一个叫做 aspnet_wp 的 Worker Process 上面,在该进程初始化的时分会加载CLR,所以这是一个托管的环境。
ISAPI: 指可以解决各种后缀名的运用程序。 ISAPI 是下面单词的简写 :Internet Server Application Programe Interface,互联网服务器运用程序接口。
IIS 5 形式的特点:
1、首先,同一台主机上在同一工夫只能运转一个 aspnet_wp 进程,每个基于虚构目录的 ASP.NET Application 对应一个 Application Domain ,也就是说每个 Application 都运转在同一个 Worker Process 中,Application之间的隔离是基于 Application Domain 的,而不是基于Process的。
2、其次,ASP.NET ISAPI 岂但担任创建 aspnet_wp Worker Process,而且担任监控该进程,假设检测到 aspnet_wp 的 Performance 升高到某个设定的下限,ASP.NET ISAPI 会担任完结掉该进程。当 aspnet_wp 完结掉之后,后续的 Request 会导致ASP.NET ISAPI 重新创建新的 aspnet_wp Worker Process。
3、最后,因为 IIS 和 Application 运转在他们各自的进程中,他们之间的通讯必须采用特定的通讯机制。实质上 IIS 所在的 InetInfo 进程和 Worker Process 之间的通讯是同一台机器不同进程的通讯(local interprocess communications),处于Performance的思考,他们之间采用基于Named pipe的通讯机制。ASP.NET ISAPI和Worker Process之间的通讯经过他们之间的一组Pipe完成。异样处于Performance的缘由,ASP.NET ISAPI 经过异步的模式将Request 传到Worker Process 并获得 Response,然而 Worker Process 则是经过同步的模式向 ASP.NET ISAPI 获得一些基于 Server 的变量。