应用程序池究竟是什么?它的目的是什么?
应用程序池允许您将应用程序彼此隔离,即使它们运行在同一台服务器上。这样,如果一个应用程序出现错误,它不会关闭其他应用程序。
此外,应用程序池允许您分离需要不同安全级别的不同应用程序。
这里有一个很好的资源:IIS和ASP。NET:应用程序池
基本上,应用程序池是一种通过进程边界在web服务器中创建区域的方法,并将url集路由到每个这些区域。更多信息请访问:http://technet.microsoft.com/en-us/library/cc735247(WS.10).aspx
应用程序池是由工作处理器或一组工作处理器提供服务的一组url。
可以存在任意数量的应用程序池。
在IIS中,可以创建多个应用程序池。
不同应用程序池中的应用程序在不同的工作处理器中运行。
优点:如果在一个应用程序池中发生错误,则不会影响在另一个应用程序池中运行的应用程序。
应用程序池是由一个或多个url组成的一组,由一个或一组工作进程提供服务。任何Web目录或虚拟目录都可以分配给应用程序池。
应用程序池中的每个应用程序共享相同的工作进程。
假设游泳者在预留给他们的游泳池游泳。如果游泳者游到为他们预留的区域之外会发生什么,整个事情会变得一团糟。类似地,iis使用应用程序池将一个进程与另一个进程分开。
应用程序池是由一个或多个url组成的一组,由一个或一组工作进程提供服务。应用程序池用于分离共享相同配置和应用程序边界的IIS工作进程集。应用程序池用于隔离我们的web应用程序,以获得更好的安全性、可靠性、可用性和性能,并且它们保持运行而不相互影响。
应用程序池用于分离共享相同配置和应用程序边界的IIS工作进程集。
应用程序池用于隔离我们的web应用程序,以获得更好的安全性、可靠性、可用性和性能,并在不相互影响的情况下保持运行。工作进程充当分离每个应用程序池的进程边界,因此当一个工作进程或应用程序出现问题或被回收时,其他应用程序或工作进程不会受到影响。一个应用程序池也可以有多个工作进程。
或者我们可以简单地说,应用程序池是一个或多个url的组,由一个或一组工作进程提供服务。任何Web目录或虚拟目录都可以分配给应用程序池。因此,如果你使用独立的应用程序池,一个网站不会受到其他网站的影响。
来源:Interviewwiz
application Pools元素包含IIS上运行的所有应用程序池的配置设置。应用程序池定义了一组一个或多个工作进程,这些进程配置了公共设置,为分配给该应用程序池的一个或多个应用程序提供请求。
由于应用程序池允许一组Web应用程序共享一个或多个配置相似的工作进程,因此它们提供了一种方便的方法,可以将一组Web应用程序与服务器计算机上的其他Web应用程序隔离开来。
进程边界分隔了每个工作进程;因此,一个应用程序池中的应用程序问题不会影响其他应用程序池中的Web站点或应用程序。应用程序池显著提高了Web基础设施的可靠性和可管理性。
IIS-Internet信息服务是用于托管一个或多个web应用程序的web服务器。 让我们举一个例子,微软正在维护网络服务器,我们在这个IIS上运行我们的网站abc.com(基于新闻内容)。 由于微软是一家大公司,它可能会采取或也准备托管另一个网站,比如xyz.com(基于电子商务)。
现在网络服务器托管,即提供内存运行两个网站在其单一的网络服务器。因此,这里出现了应用程序池。 Abc.com有自己的规则,业务逻辑,数据等,同样适用于xyz.com。
IIS提供了两个应用程序池(路径),在单个web服务器上平滑地运行两个网站在各自的世界(数据),而不影响各自的问题(安全性,可伸缩性)。这是IIS中的应用程序池。
所以你可以有任意数量的应用程序池,这取决于服务器的容量
我是投票第二高的答案,但如果有人觉得有用的话,我想在这里添加更多的细节。
短版:
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.
An application pool is like a pond, if I create 2 application pools, first application pool has 100 fishes and another application pool has 200 fishes, here fish is like an application in application pool. They are managed by worker processes. Best advantage is: if pond number-1 has bad water and cases all fish are effected then there is security of fish in pond number-2. Like this if any application pool is affected by any problem but there is not any effect of this problem in application pool 2 so security improves, and another benefit is that is you provide all the necessary authentication and rights to all applications in a single application pool.
应用程序池是使用IIS (w3wp.exe)相同工作进程的应用程序的集合。使用应用程序池的主要目的是隔离具有不同安全问题的两个不同应用程序,并避免由于工作进程死亡而导致应用程序崩溃。
应用程序池为应用程序提供隔离。并且提高应用程序的可用性,因为每个应用程序池都在自己的进程中运行,所以一个应用程序中的错误不会导致其他应用程序池。我们有一个共享池,在它下面运行多个web应用程序,还有一个专用池,在它上面运行单个应用程序。
推荐文章
- 什么是Kestrel (vs IIS / Express)
- 如何为ASP.net/C#应用程序配置文件值中的值添加&号
- 我如何解决“HTTP错误500.19 -内部服务器错误”在IIS7.0
- 将列表序列化为JSON
- 运行计划任务的最佳方式
- Global.asax中的“解析器错误消息:无法加载类型”
- 什么时候我应该在ASP中使用异步控制器。净MVC吗?
- ASP。NET“特殊”标签
- 如何编辑。csproj文件
- 如何使用网络强制HTTPS。配置文件
- 如何在WebAPI上使用Swashbuckle省略Swagger文档中的方法
- 无法加载.ps1,因为在此系统上禁止执行脚本
- 找不到如何使用HttpContent
- 我如何循环通过日期范围?
- 无效的回发或回调参数。使用'<pages enableEventValidation="true"/>'启用事件验证