IIS和Asp.Net中的应用程序池是什么?

Ami*_*abh 23 .net asp.net iis

如何在IIS中实现应用程序池?

  1. 每个应用程序池是否等同于.Net AppDomain?
  2. 或者它相当于.Net流程?
  3. 应用程序池如何与IIS w3wp.exe相关?

Aar*_*ght 26

1.每个应用程序池是否等同于.Net AppDomain?

不,应用程序池可能有多个AppDomain.每个AppDomain代表一个正在运行的ASP.NET应用程序.许多ASP.NET应用程序可能属于单个应用程序池.

2.或者它相当于.Net流程?

不完全的.见下文.

3.应用程序池如何与IIS w3wp.exe相关?

应用程序池表示可能托管可能更多数量的应用程序的有限数量的工作进程.这类似于SQL连接池如何在任意数量的请求之间共享有限数量的连接.

默认情况下,应用程序池获取一个Worker Process(w3wp.exe),除非您知道自己在做什么,否则通常最好单独保留此设置.仍然可以将应用程序池配置为使用任意数量的进程.

工作进程实际上是在这里汇集的资源,而不是AppDomain.总是会有与ASP.NET应用程序相同数量的AppDomain(除非一个正在关闭,或者一个应用程序创建自己的AppDomain),但工作进程的数量是独立的; 应用程序池为您提供特定数量的工作进程来处理特定数量的AppDomain的请求.

应用程序池中的工作进程数设置为1(默认值)意味着池中的所有应用程序/ AppDomain共享同一个工作进程.


And*_*are 5

说这种方式过于简单,但考虑它的最佳方式是AppPool是一个AppDomains池.所有这些AppDomain都在一个工作进程(w3wp.exe)中运行.