首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >什么是IIS和Asp.Net中的应用程序池?

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

Stack Overflow用户
提问于 2010-04-17 18:53:14
回答 4查看 15.4K关注 0票数 23

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

  1. 是每个应用程序池等效于.Net AppDomain?
  2. 还是等效于.Net进程?
  3. 应用程序池是如何与IIS w3wp.exe、

相关的?

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 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共享相同的辅助进程。

票数 25
EN

Stack Overflow用户

发布于 2010-04-17 18:55:04

这样说是过于简单化了,但最好的思考方式是,AppPool是一个AppDomains池。所有这些AppDomains都在单个工作进程(w3wp.exe)中运行。

票数 5
EN

Stack Overflow用户

发布于 2016-10-11 23:10:17

另外一件重要的事情是Application Security

在早期版本的IIS中,工作进程作为LocalSystem运行,这是一个强大的帐户,具有服务器上的系统管理员权限。因为LocalSystem几乎可以访问操作系统上的所有资源,这就导致了安全性问题。在IIS6.0(引入应用程序池)中,可以在应用程序池级别设置工作进程的标识。应用程序池的标识是运行应用程序池的辅助进程的帐户。默认情况下,应用程序池在具有低级别用户访问权限的NetworkService帐户下运行.

通过使用非常低特权的帐户(如NetworkService )运行辅助进程,可以减少安全漏洞。但是,通过使用IIS管理器,可以将应用程序池配置为,使其以下列任何预定义帐户的形式运行:

代码语言:javascript
复制
NetworkService
LocalSystem
LocalService
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2659571

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档