我有一个奇怪的问题,当开始收听时,我运行以下功能:
app.listen(process.env.PORT || 3000, async function () {
await db.init().catch(err => {
console.error(err);
console.error("Shutting down because there was an error setting up the database.");
process.exit(1);
});
await recordsDb.init().catch(err => {
console.error(err);
console.error("Shutting down because there was an error setting up the records database.");
process.exit(1);
});
//this db object will be used by controllers..
app.set('db',db);
});
问题是该函数没有在第一个请求之前运行(因此第一个请求始终失败),我是否缺少某些东西?
谢谢!
答案 0 :(得分:1)
您需要先scale up进行Web应用服务计划,然后才能启用始终在线。默认情况下,如果应用程序闲置了一段时间,则会将其卸载。这样可以节省系统资源。在“基本”或“标准”模式下,可以启用“始终打开”以始终保持应用程序加载。如果您的应用程序运行连续WebJobs或运行使用CRON表达式触发的WebJobs,则应启用Always On,否则Web作业可能无法可靠运行。免费的Azure Web应用程序不支持Always On。
https://docs.microsoft.com/en-us/azure/app-service/web-sites-configure