【问题标题】:Application_End fires after Application_Start in global.asax when restartingApplication_End 在重新启动时在 global.asax 中的 Application_Start 之后触发
【发布时间】:2013-09-24 16:04:27
【问题描述】:

我们注意到,在重新启动网站时,旧应用域的 Application_End 有时会在新应用域的 Application_Start 之后很长时间才触发。我们发现延迟时间长达 45 秒以上。

我猜 ASP.NET 在卸载旧应用程序域之前优先编译和启动新应用程序域..?

我发现了这个: http://msdn.microsoft.com/en-us/library/ms178473(v=vs.100).aspx

但我真的找不到任何有关新旧应用程序域之间延迟的信息。任何人都可以对此有所了解吗?

是否可以配置..?

【问题讨论】:

  • 你是如何重启的? IISReset、应用程序池回收、代码部署?这可能更多地与 IIS 的工作方式有关,而不是 asp.net 生命周期的工作原理。
  • 我们目前在代码重新编译中看到了这一点。我还没有检查所有其他重启事件..

标签: c# asp.net global-asax


【解决方案1】:

我没有找到任何可以配置延迟的东西,但是有一个选项可以在旧的工作进程退出之前禁止新的工作进程启动。

在 IIS 管理器中转到“应用程序池”,选择您的应用程序所属的应用程序池。在上下文菜单中选择“高级设置”。将选项“禁用重叠回收”设置为“TRUE”。

【讨论】:

    猜你喜欢
    • 2010-11-24
    • 1970-01-01
    • 2012-05-19
    • 1970-01-01
    • 1970-01-01
    • 2014-11-10
    • 2017-03-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多