应用程序池究竟是什么?它的目的是什么?
当前回答
应用程序池是由一个或多个url组成的一组,由一个或一组工作进程提供服务。应用程序池用于分离共享相同配置和应用程序边界的IIS工作进程集。
其他回答
应用程序池为应用程序提供隔离。并且提高应用程序的可用性,因为每个应用程序池都在自己的进程中运行,所以一个应用程序中的错误不会导致其他应用程序池。我们有一个共享池,在它下面运行多个web应用程序,还有一个专用池,在它上面运行单个应用程序。
假设游泳者在预留给他们的游泳池游泳。如果游泳者游到为他们预留的区域之外会发生什么,整个事情会变得一团糟。类似地,iis使用应用程序池将一个进程与另一个进程分开。
应用程序池允许您将应用程序彼此隔离,即使它们运行在同一台服务器上。这样,如果一个应用程序出现错误,它不会关闭其他应用程序。
此外,应用程序池允许您分离需要不同安全级别的不同应用程序。
这里有一个很好的资源:IIS和ASP。NET:应用程序池
应用程序池用于分离共享相同配置和应用程序边界的IIS工作进程集。
应用程序池用于隔离我们的web应用程序,以获得更好的安全性、可靠性、可用性和性能,并在不相互影响的情况下保持运行。工作进程充当分离每个应用程序池的进程边界,因此当一个工作进程或应用程序出现问题或被回收时,其他应用程序或工作进程不会受到影响。一个应用程序池也可以有多个工作进程。
或者我们可以简单地说,应用程序池是一个或多个url的组,由一个或一组工作进程提供服务。任何Web目录或虚拟目录都可以分配给应用程序池。因此,如果你使用独立的应用程序池,一个网站不会受到其他网站的影响。
来源:Interviewwiz
我是投票第二高的答案,但如果有人觉得有用的话,我想在这里添加更多的细节。
短版:
IIS runs any website you configure in a process named w3wp.exe. IIS Application pool is feature in IIS which allows each website or a part of it to run under a corresponding w3wp.exe process. So you can run 100 websites all in a single w3wp.exe or 100 different w3wp.exe. E.g. run 3 websites in same application pool(same w3wp.exe) to save memory usage. ,run 2 different websites in two different application pools so that each can run under separate user account(called application pool identity). run a website in one application pool and a subsite 'website/app' under a different application pool.
长版:
每个网站或网站的一部分,都可以在一个应用程序池下运行。您可以使用应用程序池控制网站的一些基本设置。
You would like the website to run under a different w3wp.exe process.Then create a new application pool and assign that to the website. You would like to run the website and all it's code under a different user account(e.g under Admin privileges),you can run do that by changing Application Pool Identity. You would like to run a particular application under .net framework 4.0 or 2.0. You would like to make sure the website in 32 bit mode or have a scheduled recycle of the w3wp.exe process etc.All such things are controlled from iis application pool.
推荐文章
- 驻留在App_Code中的类不可访问
- 自定义HttpClient请求头
- 无法启动IIS Express Web服务器,注册URL失败,访问被拒绝
- 如果我使用OWIN Startup.cs类并将所有配置移动到那里,我是否需要一个Global.asax.cs文件?
- ASP。NET Identity DbContext混淆
- 下拉列表的SelectedIndexChanged事件没有触发
- 是否已经添加了事件处理程序?
- 在应用程序级别之外使用注册为allowDefinition='MachineToApplication'的section时出错
- 部署网站:500 -内部服务器错误
- 我如何提高ASP。NET MVC应用程序性能?
- 如何在没有任何错误或警告的情况下找到构建失败的原因
- 有没有办法注释掉.ASPX页面中的标记?
- jQuery为ajax请求返回“parsererror”
- 不带查询字符串获取url
- <%$, <%@, <%=, <%#…怎么回事?