【发布时间】:2019-01-01 07:33:30
【问题描述】:
有关 Azure 中水平缩放的术语有点不清楚。
当它创建应用程序的多个实例时,我知道它们在单独的 VM 中运行,因此当发生这种水平扩展时,这应该会导致创建具有自己的静态变量集的全新 AppDomain。
如果是这样,那么是否会为每个实例调用 Application_Start 事件?
我们有一个“缓存刷新”功能,它涉及设置一个侦听器以订阅消息队列中的“主题”,以便在收到消息时刷新静态缓存。我们曾经认为我们必须在 HttpApplication.Init 事件中设置侦听器,该事件将为每个实例调用,但在意识到 AppDomain 中的所有 HttpApplication 实例共享相同的一组静态变量之后,这不再有意义。
我的新理解是,即使没有水平缩放,Web 应用程序也会发生多个 HttpApplication 实例(因此多次调用 HttpApplication.Init)。换句话说,即使在单个 AppDomain 中,它也是 asp.net Web 应用程序如何处理请求的正常功能。 Azure 的水平缩放是完全不同的,涉及实例化完全独立的 AppDomain。听起来对吗?
【问题讨论】:
-
相关,但不回答这个问题:stackoverflow.com/questions/720969/…
标签: azure appdomain horizontal-scaling httpapplication