每个应用程序可以运行应用程序对象的实例数

本文关键字:应用程序 实例 对象 运行 | 更新日期: 2023-09-27 18:02:11

我正在阅读以下文章如何正确使用IHttpModule*

现在让我们想想这个词本身。应用程序池。是游泳池。它意味着某个web应用程序正在运行多个一个池中的HttpApplication实例。是多个。否则不会被称为游泳池。»有多少?«你可能会问。那不是真的很重要,只要你知道可能不止一个。我们信任IIS来完成它的工作。很明显,它做得很好这一事实对美国开发人员来说是完全透明的,因此不多完全了解其内部工作原理。我们依靠其稳健性提供服务。确实如此。每个HttpApplication池中的实例保留其自己使用的HTTP模块列表它处理的每个请求。

*

我有一个问题,在什么情况下,应用程序对象的多个实例可以为单个应用程序运行。到目前为止,我已经意识到每个应用程序都存在一个应用程序对象。所以我很想知道,每个应用程序可以运行多个实例,这是真的吗?它是如何决定的?

每个应用程序可以运行应用程序对象的实例数

每个HttpApplication对象实例对于单个请求都是唯一的。如果您的站点并行处理多个请求,则每个请求都必须有自己的HttpApplication实例。该对象具有每个请求的状态信息,这些信息在请求的生存期内不得更改(包括请求和响应的主体!(

实例是池化的,如文章中所述。每一个都将被重用,以服务于多个后续请求,达到应用程序池上设置的限制,然后它将被允许消亡

请注意,您特别询问了HttpApplication。这与System.Windows.Forms.Application类不同,后者实际上是一个单例类,每个应用程序只存在一次。