Microsoft Azure免费网站问题(NodeJS服务器)

时间:2015-02-20 23:33:33

标签: node.js azure azure-web-sites

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

Azure是否因为没有活动而关闭服务器,导致该对象被取消分配?如果在一段时间后没有使用它们,NodeJS会解除分配对象吗?

2 个答案:

答案 0 :(得分:1)

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

使用基本/标准层网站,您可以启用始终开启。您会在配置标签下看到此选项:

enter image description here

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

答案 1 :(得分:0)

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

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

  

使用基本/标准层网站,您可以启用Always On。您将在Configure选项卡下看到此选项: