【问题标题】:Application_start function and IIS7 Process Model Idle time out settingApplication_start 函数和 IIS7 进程模型空闲超时设置
【发布时间】:2012-05-31 15:13:18
【问题描述】:

我有一个 asp.net 应用程序,并且我有一些在应用程序启动函数中被调用的任务。这些任务运行为while(true),并在计算完成后休眠 x 时间。然而,在部署应用程序后,我检查了这些任务生成的日志文件,发现它们运行得比它们应该运行的要多。

事实上,每当有人在一段时间不活动后访问该网站时,它们都会运行。

我查看了应用程序池设置,发现进程模型空闲超时设置为 20 分钟。

这会导致问题吗?即应用程序是否会在 20 分钟后重新启动,从而导致再次调用 application_start 函数?

【问题讨论】:

    标签: asp.net asp.net-mvc asp.net-mvc-3 iis-7 application-pool


    【解决方案1】:

    这会导致问题吗?

    是的,没错。此设置意味着如果在给定时间内您的站点上没有活动(没有 HTTP 请求),IIS 将简单地从内存中卸载应用程序域。然后进入的下一个请求将启动一个新的应用程序实例,Application_Start 将再次被命中。

    请记住,这不是 IIS 可能卸载您的应用程序的唯一条件。例如,如果进程达到特定的 CPU 或内存使用阈值,也会发生这种情况。这些也是可配置的。

    如果bin文件夹中的某些文件被修改或web.configGlobal.asax也被修改,它也会重新启动。但这一次不是 IIS 将卸载应用程序,而是 ASP.NET 运行时侦听这些文件中的更改。但在所有情况下,它都会导致Application_Start 在下一个请求时被触发。

    【讨论】:

    • 是的,它恭敬地导致了它。我将值设置为 0,它已经解决了这个问题。谢谢!
    猜你喜欢
    • 2013-09-10
    • 2022-09-23
    • 2012-10-02
    • 2017-03-14
    • 2010-12-08
    • 1970-01-01
    • 1970-01-01
    • 2014-04-18
    • 1970-01-01
    相关资源
    最近更新 更多