Azure网站节点进程生命周期

时间:2013-12-17 12:37:25

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

我发现Azure网站(试用版)没有自动启动我的节点服务器进程(只有当我在网络浏览器中加载网址时才启动);并且当一段时间内没有请求时,该进程被终止。

我的意思是,当我git推送我的服务器时,我希望它能够立即开始连续运行。

我读过(例如here)这可能与iisnode管理azure网站的方式有关,而且我无法做任何改变它的事情。这是Azure网站的实际工作方式吗?有什么方法可以解决这个问题吗?

提前致谢,

布鲁诺。

2 个答案:

答案 0 :(得分:2)

你找到了答案。没有其他答案。

由于不活动而导致的进程终止来自IIS - 有Idle Timeout setting。据我所知,在Azure网站中无法配置(至少不是免费套餐)。还可以查看this SO question and its answer以更好地了解为什么不能在FREE和STANDARD层上更改此超时。

here is一个有趣的解决方法,以避免此空闲超时。实际上,如果你使用技术,你也会有一种“自动启动”,因为当你的调度程序在新的部署后到达你的站点时,它会“启动”。

答案 1 :(得分:0)

这可能会有点复杂,但如果您不想使用5分钟的ping服务,可以通过执行以下操作来保持这些服务:

  1. 在门户网站的网站配置标签上创建应用设置: WEBSITE_PRIVATE_EXTENSIONS并将其值设为1
  2. 创建一个名为applicationhost.xdt的文本文件,并填充:
    <?xml version="1.0"?><configuration xmlns:xdt="http://schemas.microsoft.com/XML-Document-Transform"><system.applicationHost><applicationPools><add name="DefaultAppPool" managedRuntimeVersion="v4.5" startMode="AlwaysRunning"><processModel identityType="ApplicationPoolIdentity" /></add></applicationPools></system.applicationHost></configuration>
  3. ftp进入您的网站并在名为Site Extensions的根目录中创建一个文件夹。 (根目录中应该有3个文件夹:LogFiles,site和&amp; SiteExtensions)
  4. 在“网站扩展程序”中创建另一个名为ASPLimits
  5. 的文件夹
  6. 将applicationhost.xdt上传到ASPLimits文件夹
  7. 使用门户网站重新启动您的网站