【问题标题】:Microsoft Azure free website issue (NodeJS server)Microsoft Azure 免费网站问题(NodeJS 服务器)
【发布时间】:2015-02-21 15:54:05
【问题描述】:

我有一个在 Azure 免费网站上运行的 NodeJS 服务器。服务器安装了 websocket 模块。每个连接的用户都将使用一个对象缓存一些数据,以便连接的其他任何人都可以从该对象中检索缓存的数据。我遇到的问题是服务器似乎没有将这个对象保留很长时间。我可以在一段时间内使用 in 访问数据,但如果我在当天晚些时候尝试,它就会消失。

Azure 是否因为没有活动而关闭服务器,导致对象被释放?如果一段时间后不使用,NodeJS 会释放对象吗?

【问题讨论】:

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


    【解决方案1】:

    正如 Ben 在他的回答中指出的那样,Azure 网站将驱逐闲置的网站。对于免费/共享层尤其如此,因为您的网站与同一 VM 实例上的多个其他租户共享资源。但即使使用基本层和标准层,也可能需要驱逐您的网站(尤其是因为您可以在一个托管计划中运行许多自己的网站)。

    对于基本/标准级别的网站,您可以启用始终开启。您将在 配置 标签下看到此选项:

    启用此功能后,您的网站应保持加载状态。

    【讨论】:

    • 太棒了,我不知道这个功能:)
    【解决方案2】:

    是的。如果应用程序池没有任何请求,Azure 网站会停止您的应用程序。这意味着内存中的任何内容都会丢失。您可以设置 cron 作业或计划任务来 ping 您的 Web 应用程序,以避免应用程序池因不活动而超时。

    编辑:或者,正如David Makogon 指出的那样,

    对于基本/标准级别的网站,您可以启用 Always On。您将在“配置”选项卡下看到此选项:

    【讨论】:

    • 啊,好吧。与使用网站功能相比,部署到云服务似乎会更好地受益,因为云服务可以配置为连续运行。我将在网站上进行调试和开发,当一切看起来稳定时,我将切换到创建云服务。非常感谢您的澄清!
    • 无需切换到云服务(网络角色)。您可以启用一项功能来保持网站加载。我发布了一个额外的答案来解释这一点。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多