VS.NET(C#)-5.12_IIS5运行模型及特点
IIS 5.x算是微软IIS产品的分界线。
IIS5.x可以配置的方式来运行,对于之前的IIS大进步。IIS 5.x对之后IIS的发展有很重要启示, 运行机制有很大的不同。
运行模型图
模型特点
首先,同一台主机上在同一时间只能运行一个aspnet_wp进程,每个基于虚拟目录的 ASP.NET Application对应一个 Application Domain,即每个Application 都运行在同一Worker Process 中,Application之间的隔离是基于Application Domain的,而不是基于Process的。
其次,ASP.NET ISAPI 负责创建 aspnet_wp.exe 工作进程,而且负责监控该进程,如果检测到 aspnet_wp 的 Performance 降低到某个设定的下限,ASP.NET ISAPI 会负责结束掉该进程。当 aspnet_wp 结束掉之后,后续的 Request 会导致ASP.NET ISAPI 重新创建新的 aspnet_wp Worker Process。
最后,由于 IIS 和Application 运行在他们各自的进程中,他们之间的通信必须采用特定的通信机制。
本质上IIS 所在的 InetInfo 进程和 Worker Process 之间的通信是同一台机器不同进程的通信(local interprocess communications),处于Performance的考虑,他们之间采用基于Named pipe的通信机制。
ASP.NETISAPI和Worker Process之间的通信通过他们之间的一组Pipe实现。同样处于Performance的原因,ASP.NET ISAPI 通过异步的方式将Request 传到Worker Process 并获得 Response,但是 Worker Process 则是通过同步的方式向 ASP.NET ISAPI 获得一些基于 Server 的变量。