如何在IIS中实现应用程序池?
>每个应用程序池是否等同于.Net AppDomain?
>或者它等同于.Net进程?
>应用程序池如何与IIS w3wp.exe相关?
解决方法
1 . Is each application pool equivalent to a .Net AppDomain?
不,应用程序池可能有几个AppDomains。每个AppDomain代表单个运行的ASP.NET应用程序。许多ASP.NET应用程序可能属于单个应用程序池。
2 . Or it is a equivalent to a .Net process?
不完全的。见下文。
3 . How is Application pool related to IIS w3wp.exe?
应用程序池代表有限数量的可能承载更大数量的应用程序的工作进程。这与sql Connection Pool如何在任意数量的请求中共享有限数量的连接相似。
默认情况下,应用程序池会获得一个工作进程(w3wp.exe),通常最好将此设置保留下来,除非您知道自己在做什么。尽管如此,应用程序池可以配置为使用任意数量的进程。
工作进程实际上是在这里合并的资源,而不是AppDomain。总有与ASP.NET应用程序相同数量的AppDomains(除非有人正在关闭中,或者一个应用程序创建自己的AppDomains),而且Worker Processes的数量是独立的;应用程序池为您提供特定数量的工作进程来处理特定数量的AppDomains的请求。
应用程序池中工作进程数的设置为1(默认值)意味着池中的所有应用程序/ AppDomains共享相同的工作进程。