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

Node.js Microsoft Azure免费网站问题(NodeJS服务器),node.js,azure,azure-web-app-service,Node.js,Azure,Azure Web App Service,我有一个在Azure免费网站上运行的NodeJS服务器。服务器已安装websocket模块。每个连接的用户都将使用对象缓存一些数据,以便任何其他连接的用户都可以从该对象检索缓存的数据。我遇到的问题是,服务器似乎没有将此对象保留很长时间。我可以用in访问数据一段时间,但如果我在当天晚些时候尝试,它就消失了 Azure是否正在关闭服务器,因为它没有遇到任何活动,导致对象被解除分配?如果对象在一段时间后不被使用,NodeJ是否会释放它们?是的。如果没有对应用程序池的任何请求,Azure网站将停止您的应

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


Azure是否正在关闭服务器,因为它没有遇到任何活动,导致对象被解除分配?如果对象在一段时间后不被使用,NodeJ是否会释放它们?

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

编辑:或者,如前所述,

对于基本/标准层网站,您可以启用“始终打开”。您将在“配置”选项卡下看到此选项:


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

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


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

Ahh,好的。与使用web站点功能相比,部署到云服务似乎对我更有好处,因为云服务可以配置为连续运行。我将在Web站点上进行调试和开发,当一切看起来稳定时,我将切换到创建云服务。非常感谢您的澄清!无需切换到云服务(web角色)。有一个功能可以让你的网站保持加载状态。我发布了一个额外的答案来解释这一点。太棒了,我不知道这个功能:)