【问题标题】:Can I configure IIS to let my ASP.NET application alive forever?我可以配置 IIS 以让我的 ASP.NET 应用程序永远活着吗?
【发布时间】:2010-12-04 15:38:49
【问题描述】:

据我所知,只要没有用户会话处于活动状态,ASP.NET 应用程序就会结束,默认会话超时为 20 分钟。在那之后,当有新请求时,它会再次活跃。

但是,我的应用程序在 Application_Start 上执行的缓存加载操作非常缓慢,我不希望这种情况发生多次。

如何配置 IIS 以使其发挥不同的作用?

我了解到 IIS 7.5 上的应用程序池有一个称为自动启动的属性和另一个称为空闲超时的属性。文档说,如果我将 auto-start 设置为 true 并将 idle-time-out 设置为零,那么应用程序池将在 IIS 启动时启动并且永远不会超时。但我不知道它是如何集成到 ASP.NET 中的。这是否意味着 Application_Start 将在 IIS 启动时运行,并且在下一次 IIS 重新启动之前不会再次发生?

【问题讨论】:

    标签: .net asp.net iis iis-7


    【解决方案1】:

    我使用uptime robot 来确保我的应用程序始终启动。这其中的美 系统是否只要求您网站上的页面标题,并每 5 分钟获取一次状态代码,如“200-ok”、“404-not found”等。这意味着正常运行时间机器人不会向 Google Analytics 添加噪音,因为该页面从未被请求过。

    对我来说似乎是一个梦想,它免费!

    【讨论】:

    • 我刚刚添加了一个监视器。如果这阻止了 AppPool 停止,我会非常放心!
    • 应用程序池可能因其他原因停止,内存超出等...您可能仍会看到应用程序池回收,但希望这会限制它
    【解决方案2】:

    对于您为 IIS 7.5 描述的设置:

    应用程序池重启可能有其他原因(例如,它超出了内存使用限制)。

    但 Application_Start 将在每次重新启动时运行。当然,管理员可以随时回收应用程序池。

    因此,如果您的问题是关于 IIS 重新启动和应用程序重新启动之间的 1-1 关系,那么答案是否定的。但在正常使用中,没有内存泄漏/可怕的崩溃,应该差不多。

    【讨论】:

      【解决方案3】:

      对于 IIS7.5+ 上的 ASP.NET 4.0+ 应用程序 - 您可以设置自动启动并将启动代码从 global.asax 中的 Application_Start 移动到类的 Preload 方法中。看到这个:http://weblogs.asp.net/scottgu/auto-start-asp-net-applications-vs-2010-and-net-4-0-series

      这是一个使用 IIS8 GUI 的示例:http://www.codeproject.com/Articles/795265/IIS-Asp-net-warm-up-Auto-Start-Application

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2016-01-16
        • 2021-12-28
        • 2015-07-12
        • 1970-01-01
        • 2013-08-29
        • 1970-01-01
        • 2022-09-23
        • 1970-01-01
        相关资源
        最近更新 更多