【问题标题】:Azure website node process lifecycleAzure 网站节点进程生命周期
【发布时间】:2014-02-19 08:04:58
【问题描述】:

我发现 Azure 网站(试用版)不会自动启动我的节点服务器进程(它仅在我在网络浏览器中加载 url 时启动);并且当一段时间内没有请求时,该进程将被终止。

我的意思是,当我 git push 我的服务器时,我希望它立即开始并持续运行。

我读到(例如here)这可能与 iisnode 管理 azure 网站的方式有关,而我无法做任何改变。这是 Azure 网站的实际工作方式吗?有什么办法可以解决吗?

提前致谢,

布鲁诺。

【问题讨论】:

标签: node.js azure azure-web-app-service


【解决方案1】:

你已经找到了答案。没有其他答案。

由于不活动而终止的进程来自 IIS - 有Idle Timeout setting。据我所知,这在 Azure 网站中是不可配置的(至少不是免费层)。另请查看this SO question and its answer,以更好地了解为什么您不能在免费和标准层上更改此超时。

here is 是一个有趣的解决方法,可以避免这种空闲超时。实际上,如果您使用技术,您还将拥有一种“自动启动”,即当您的调度程序在新部署后访问您的站点时,它将“启动”。

【讨论】:

  • 谢谢!所以我将不得不尝试这种解决方法或转向云服务之类的东西......
  • 另一种解决方法是新的 Azure 调度程序服务,它可以配置为按定义的时间表对 url 执行 GET。
  • 这是 Windows Azure 网站的设计。有点与 Yossi 的 cmets 一致,如果您在网站的“配置”选项卡中使用监控预览功能,您可以让它每分钟左右访问您的网站。我这样做是为了让我的网站更加可用并始终保持稳定。
  • 是的,Monitoring 仅适用于 STANDARD 和 RESERVED,不适用于 FREE。虽然我仍然可以免费使用移动服务方法或调度程序。至少在 Scheduler 是 Preview 的那一刻,因为它是免费层,所以我的工作时间间隔为 1 小时。
  • 我最终决定使用 Uptime Robot,它每 5 分钟执行一次。Azure 云服务太复杂了。谢谢!
【解决方案2】:

这可能有点复杂,但如果您不想使用他们的 5 分钟 ping 服务,您可以通过执行以下操作来保持这些服务始终开启:

  1. 在门户中的网站配置选项卡上创建应用设置: WEBSITE_PRIVATE_EXTENSIONS 并为其赋值 1
  2. 创建一个名为 applicationhost.xdt 的文本文件,并在其中填充:
    <?xml version="1.0"?><configuration xmlns:xdt="http://schemas.microsoft.com/XML-Document-Transform"><system.applicationHost><applicationPools><add name="DefaultAppPool" managedRuntimeVersion="v4.5" startMode="AlwaysRunning"><processModel identityType="ApplicationPoolIdentity" /></add></applicationPools></system.applicationHost></configuration>
  3. ftp 进入您的网站,并在名为Site Extensions 的根目录上创建一个文件夹。 (现在您的根目录中应该有 3 个文件夹:LogFiles、site 和 SiteExtensions)
  4. 在“站点扩展”中创建另一个文件夹,命名为 ASPLimits
  5. 将 applicationhost.xdt 上传到 ASPLimits 文件夹中
  6. 使用门户重新启动您的网站

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-04-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-06-06
    • 1970-01-01
    相关资源
    最近更新 更多