代码之家  ›  专栏  ›  技术社区  ›  Andy

为什么多次调用httpapplication构造函数

  •  21
  • Andy  · 技术社区  · 17 年前

    有人能解释为什么自定义类的构造函数派生自 HTTP应用 在应用程序启动时多次调用?

    我的代码结构如下:
    -我的 全球的 global.asax中的类派生自 定制应用程序 班级。
    - 定制应用程序 类派生自 HTTP应用 班

    这个 全球的 类是在启动时创建的,但当我在构造函数中放置断点时,它会被多次调用!我想应该只有一个例子 应用 创建类?

    我错了吗?

    UPD :Web服务器确实可以创建多个 HTTP应用 实例来处理同时传入的多个请求。当您在 HTTP应用 后裔。几个请求将从客户端(HTTP内容、CSS文件等)挂起,为了满足每个请求,Web服务器将创建新的httpapp实例。因此,在编写应用程序初始化逻辑时,请注意这一点。

    2 回复  |  直到 15 年前
        1
  •  15
  •   mckamey    17 年前

    我相信ASP.NET运行时可以为每个应用程序域创建多个httpapplication。所以httpapplication.init和ctor可能会被多次调用。

    如果您想让初始化代码只运行一次,那么您应该使用应用程序启动事件,每个应用程序只调用一次。

        2
  •  6
  •   consept    15 年前

    请看一个帖子 global.asax in ASP.NET -它解释了为什么http应用程序有多个实例。基本上有两个游泳池:特殊的和普通的。普通池包含请求使用的httpapplication实例(每个请求都有自己的httpapplication实例)。特殊池包含用于应用程序级事件(如应用程序启动、应用程序错误)的httpapplication对象。

    推荐文章