【问题标题】:Application_End global.asaxApplication_End global.asax
【发布时间】:2008-11-13 21:16:31
【问题描述】:

谁能告诉我在应用程序的生命周期中何时触发 Application_End ?当所有会话结束时,Application_End 会自动触发吗? + 是否还有其他原因可以触发 Application_End?

【问题讨论】:

  • 我删除了 Application_End 仅在您关闭网站时触发的答案。然而,几分钟的研究在这个问题上产生了相互矛盾的信息,我不想因为回答错误而被否决。
  • 不是您问题的答案,但对于调查此事件是否正在发生并且您不确定原因也很有用:blogs.msdn.com/b/tess/archive/2006/08/02/…

标签: asp.net iis global-asax lifecycle application-end


【解决方案1】:

application_end 事件主要在 IIS 池被回收或应用程序本身被卸载时触发。需要注意的另一件事是,对依赖文件(例如 web.config)的更改将导致应用程序自行重新加载,这将导致 application_end 事件在其关闭时触发。

需要注意的是,我在最后一个用户会话超时时发现的应用程序结束事件触发的唯一实例是在 2001 年的一些旧文档中。我不确定该标准是否仍然适用。

【讨论】:

  • 我注意到修改 web.config 时,可能需要几分钟才能触发 application_end。
  • 对于@anphu 来说,当应用程序由于配置更改(或 DLL 更改)而重新加载时,通常会在一段时间内同时出现旧应用程序实例和应用程序新实例正在并行运行,因为旧实例完成了其现有请求的处理; odetocode.com/articles/305.aspx 很好地解释了这一点 - 这个主题的好读物
  • 如果我从命令提示符中卸载使用 msi 包安装的 Web 应用程序,是否会调用应用程序端?
  • @YakRangi - 我相信是这样,因为卸载过程将涉及关闭并从 IIS 中删除 Web 应用程序实例
  • @Dillie-O 我正在测试这个,但有一个奇怪的观察结果。在我的 Application_End 中,我需要调用 WCF 服务。有时它可以在其他时候调用它,它会引发类型初始化程序异常。除了 Web 应用程序本身(调用 WCF 服务的地方)之外,我在另一个项目中有我的 WCF 引用。我在 Web.config 中配置了 WCF 服务端点。但我不知道为什么有时它可以打电话,有时不能。我怀疑(从客户端)卸载 Web 服务项目并调用 Application_End 正在竞争?有什么想法吗?
【解决方案2】:

Application_End 在 ASP.NET 工作进程终止时触发。这通常发生在一段可配置的不活动时间之后或 IIS(或相关的应用程序池)关闭或重新启动时。

在 IIS 6.0 中运行时,可通过 Internet 服务管理器中的应用程序池设置来配置不活动超时(性能选项卡上的空闲超时)。在早期版本的 IIS 下,可以在 machine.config 中设置(processModel 下的 idleTimeout)。

【讨论】:

  • 你知道是否存在进程可以在不运行 Application_End 的情况下终止的实例。例如,我在 Application_Start 中映射了一个网络共享,我想在 Application_End 上断开该共享。是否存在应用程序可以在不触发 Application_End 的情况下结束的点?我想停电会满足这个标准。出现某种致命的应用程序错误怎么办?
  • @crush:是的,绝对是,只要进程“意外”终止,事件就不会触发;示例包括断电/硬件故障、进程中的线程“挂起”并且应用程序池终止的任何情况(例如,如果最长的请求需要超过 30 秒才能完成,则为 IISReset),任何人或某事手动执行“结束”的情况该 w3wp.exe 进程(例如在任务管理器中)上的“进程”、任何“强制关闭”以及非托管代码导致内存或其他进程级错误(堆栈溢出、GPF 等)的任何情况
【解决方案3】:

在我的例子中,Aapplication Pool 正在被回收,因为属性 Idle Time-Out (minutes)

此属性的默认值为 20(分钟)

【讨论】:

    猜你喜欢
    • 2017-01-10
    • 2015-02-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多