2012-01-17 25 views
3

我在读this有人可以向我解释应用程序池及其工作进程吗?

我理解应用程序池:

  1. 可以独立的过程,从而一个工作进程失败不会影响其他应用程序池中的 其他应用程序。
  2. 从网页上面

不同的应用程序池隔离应用程序有助于防止一个 客户访问,更改或使用从其他客户的网站机密信息 。

但是,

  1. 如何工作进程会失败?我只看到了我的asp.net应用程序会抛出一个异常,但从来没有看到一个失败,将 停止我的整个工作进程。有人能给我一个真实的生活 的例子吗?
  2. 以及如何防止其他客户访问,更改 来自其他客户的网站?如果将信息 信息存储到数据库中,是不是不相关?或 他们是否指的是别的?

回答

1
  1. 工人PROCESSS会由于存储器泄漏,并且如果存在通过在进程中运行的web应用程序抛出未处理的/ uncatched异常。工作进程在失败后自动重启,但系统中的所有用户都将受到影响。
  2. 同样的事情安全,如果不同的所有Web应用程序共享相同的工作进程,攻击并导致崩溃将导致一切崩溃。
+0

因此,有时如果我的应用程序抛出一个exeception(类似于object的对象为null)并且被路由到堆栈跟踪页面,那么Worker Process已经失败并开始重新启动?当这种失败发生时,是否意味着所有其他用户的会话和全局参数(静态)都将消失? – 2012-01-17 15:40:10

+0

如果抛出未捕获/未处理的异常,则处理应用程序池的工作进程将重新启动,这将影响该进程提供服务的所有应用程序。是的,所有用户的会话变量都将消失,静态参数将重置为其初始值。 – 2012-01-17 15:48:27

+0

现在我知道在同一个应用程序池中,对异常的影响非常大lol这可能没有太多主题(也许我应该打开另一个问题)。但是,并不总是最好的将每个应用程序放在不同的池中?为什么我想要分配到同一个池中? – 2012-01-17 16:11:58

相关问题