Microsoft Azure免费网站问题(NodeJS服务器)
我有一个在Azure免费网站上运行的NodeJS服务器。 服务器安装了websocket模块。 每个连接的用户将caching一些对象的数据,以便任何连接的人可以从这个对象中检索caching的数据。 我遇到的问题是,服务器似乎并没有把这个对象保持很长时间。 我可以在一段时间内访问数据,但如果我在当天晚些时候尝试,它只是消失了。
Azure是否正在closures服务器,因为它没有任何活动,导致对象被释放? 如果NodeJS在一段时间之后没有使用它们,是否会释放对象?
是的。 如果没有任何对应用程序池的请求,Azure网站会停止您的应用程序。 这意味着记忆中的任何东西都会丢失 您可以设置一个cron作业或计划任务来ping您的web应用程序,以避免应用程序池由于不活动而超时。
编辑:或者,正如David Makogon指出的那样,
使用基本/标准层级网站,您可以启用“始终开启”。 您将在“configuration”选项卡下看到此选项:
正如Ben在他的回答中指出的那样,Azure网站将会驱赶闲置的网站。 由于您的网站与其他几个租户在同一个VM实例上共享资源,所以对于免费/共享层来说尤其如此。 但即使是基本的和标准的层次,也可能需要驱逐你的网站(特别是因为你可以有许多自己的网站运行在一个单一的托pipe计划)。
使用基本/标准层级网站,您可以启用“ 始终开启” 。 您将在“ configuration”选项卡下看到此选项:
一旦你启用这个,你的网站应该保持加载。
- 如何在azure-mobile-apps-js-client中使用substringof
- Visual Studio发布button被禁用?
- 更新后无法删除azure色的存储队列消息(消息未find)
- Bad handshake或ECONNRESET Azure Mysql Nodejs
- Cosmos DB:MongoDBsorting查询返回空白结果集
- 调用azure.createQueueService()时出错
- 使用Azure App Services在指定的PORT上承载nodeJS net.Server
- Azure上的Npm SELF_SIGNED_CERT_IN_CHAIN
- 在Azure上通过Docker-compose部署nodeJS aps