如何在IIS中实现应用程序池?
相关的?
发布于 2010-04-17 22:15:44
1。每个应用程序池是否等效于一个.Net AppDomain?
不,一个应用程序池可能有几个AppDomains。每个AppDomain表示一个正在运行的ASP.NET应用程序。许多ASP.NET应用程序可能属于一个应用程序池。
2.还是相当于一个.Net过程?
不完全是。见下文。
3.应用程序池如何与IIS w3wp.exe相关?
应用程序池表示可能承载更多应用程序的有限数量的工作进程。这类似于SQL连接池如何在任意数量的请求中共享有限数量的连接。
默认情况下,应用程序池获得一个工作进程(w3wp.exe),通常最好不要设置此设置,除非您知道自己在做什么。尽管如此,应用程序池仍然可以配置为使用任意数量的进程。
工作进程实际上是在这里池中的资源,而不是AppDomain。AppDomains应用程序的数量总是与ASP.NET应用程序相同(除非一个应用程序正在关闭,或者应用程序创建了自己的AppDomains),但是工作进程的数量是独立的;应用程序池为您提供了特定数量的工作进程来处理对特定数量的AppDomains的请求。
应用程序池中工作进程数的设置为1(默认值)意味着池中的所有应用程序/AppDomain共享相同的辅助进程。
发布于 2010-04-17 18:55:04
这样说是过于简单化了,但最好的思考方式是,AppPool是一个AppDomains池。所有这些AppDomains都在单个工作进程(w3wp.exe)中运行。
发布于 2016-10-11 23:10:17
另外一件重要的事情是Application Security。
在早期版本的IIS中,工作进程作为LocalSystem运行,这是一个强大的帐户,具有服务器上的系统管理员权限。因为LocalSystem几乎可以访问操作系统上的所有资源,这就导致了安全性问题。在IIS6.0(引入应用程序池)中,可以在应用程序池级别设置工作进程的标识。应用程序池的标识是运行应用程序池的辅助进程的帐户。默认情况下,应用程序池在具有低级别用户访问权限的NetworkService帐户下运行.
通过使用非常低特权的帐户(如NetworkService )运行辅助进程,可以减少安全漏洞。但是,通过使用IIS管理器,可以将应用程序池配置为,使其以下列任何预定义帐户的形式运行:
NetworkService
LocalSystem
LocalServicehttps://stackoverflow.com/questions/2659571
复制相似问题