我们在Azure上使用免费的BizSpark订阅,并将我们的应用程序托管为Azure网站。我们经常会遇到意外的站点关闭,因为它有很多后台进程,所以我们的应用程序非常痛苦。
“始终开启”设置可以解决此问题,但不幸的是,在当前订阅中我们无法使用它。
您可能知道IIS有两个基于以下设置的回收:
我想知道如果我们打开“始终在”设置,我们是否可以确保它有助于我们阻止上述两种应用程序回收类型。
顺便说一句,我发现了这个问题: Will "Always On" setting prevent BOTH idleTimeout and periodicRestart?有类似话题。它说这个设置应该有所帮助。
但我想确定,这是真的。因为在我们的案例中,实时后台进程的中断是绝对不可接受的。
感谢任何答案。
答案 0 :(得分:9)
是的,当你有" Always On"打开。您链接到(Will "Always On" setting prevent BOTH idleTimeout and periodicRestart?)的问题的答案包含完整的详细信息。如果您有多个实例正在运行" Always On"还将确保所有这些都能继续运行。
对于长时间运行的进程,如果可以的话,我强烈建议您使用Azure Web Jobs。 Azure Webjobs SDK将使您的开发生活更轻松,并为您提供免费的许多不错的监控。请查看Scott Hanselman撰写的本教程:http://www.hanselman.com/blog/IntroducingWindowsAzureWebJobs.aspx
仅供参考,Webjobs在您的网站环境中运行,因此如果您的网站被回收(如果Always On被禁用),那么您的Webjob也将停止运行。启用"始终开启"将保持您的网络工作和您的网站。
答案 1 :(得分:2)
来自Microsoft Azure How to configure websites
始终开启 - 默认情况下,如果网站闲置一段时间,则会卸载网站。这使系统可以节省资源。如果需要始终加载站点,则可以在标准模式下为站点启用“始终开启”设置。如果禁用“始终开启”,连续的Web作业可能无法可靠地运行,则应在站点上运行连续Web作业时启用“始终开启”。
如果您有需要持续运行的东西,您可以查看Azure Webjobs或Worker Roles,它们会比IIS线程更可靠。