【问题标题】:Can someone explain the Application Pool and it Worker Process to me?有人可以向我解释应用程序池及其工作进程吗?
【发布时间】:2012-01-17 14:55:12
【问题描述】:

我正在阅读this

我了解该应用程序池:

  1. 可以分离进程,因此一个工作进程失败不会影响 其他应用程序池中的其他应用程序。
  2. 来自上面的页面

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

但是,

  1. 工作进程将如何失败?我只看到了这种情况 我的 asp.net 应用程序将引发异常,但从未见过会失败 停止我的整个工作进程。谁能给我一个真实的生活 例子?
  2. 以及它如何阻止一位客户访问、更改 来自其他客户网站的机密信息?如果保密 信息存储到数据库中,这不是相关的吗?或者 他们指的是别的东西吗?

【问题讨论】:

    标签: asp.net iis application-pool


    【解决方案1】:
    1. 工作进程可能会因内存泄漏以及进程中运行的 Web 应用程序引发未处理/未捕获的异常而失败。 Worker 进程在失败后会自动重启,但系统中的所有用户都会受到影响。
    2. 如果不同的所有 Web 应用程序共享相同的工作进程,那么安全性也是一样的,攻击 ione 并导致它崩溃将导致一切崩溃。

    【讨论】:

    • 所以,有时如果我的应用程序抛出异常(对象为空)并路由到堆栈跟踪页面,此时工作进程已经失败并开始重新启动?当这种失败发生时,是否意味着所有其他用户的会话和全局参数(静态)也会消失?
    • 如果您抛出未捕获/未处理的异常,是的,您处理应用程序池的工作进程将重新启动,这将影响该进程服务的所有应用程序。是的,所有用户的会话变量都将消失,静态参数将重置为其初始值。
    • 现在我知道在同一个应用程序池中异常的影响非常大,哈哈这可能有点离题(也许我应该打开另一个问题)。但是,将每个应用程序放在不同的池中不是总是最好的吗?为什么我要分配到同一个池中?
    • @KingChan:通常每个应用程序都应该有自己的池。但是,有时需要共享相同的内存空间。此外,为了在重新启动时减轻对会话的影响,您可以使用进程外会话存储。恕我直言,这首先否定了 99% 的使用会话的原因。
    • @ChrisLively 感谢您回答我的问题 :) 我什至不知道有进程外会话存储大声笑刚刚阅读了一些内容,谢谢大家。
    猜你喜欢
    • 2011-01-08
    • 2014-11-28
    • 1970-01-01
    • 1970-01-01
    • 2012-12-08
    • 2021-02-18
    • 2011-05-08
    • 2020-04-20
    • 2016-06-25
    相关资源
    最近更新 更多