在Azure Web Apps中将标志传递给NodeJS的Chrome V8引擎

Nic*_*ool 3 v8 azure node.js azure-web-sites azure-web-app-service

我在Azure Web Apps上部署了NodeJS应用程序.如何将标志传递给NodeJS的Chrome V8引擎?

在我的本地机器上,我可以在运行服务器脚本时轻松完成,如下所示.

node -nouse-idle-notification -expose-gc -max-old-space-size=8192 server.js
Run Code Online (Sandbox Code Playgroud)

在Azure Web Apps中指定这些标志的位置?

Dav*_*bbo 6

你可以在里面iisnode.yml或里面这样做web.config.如果你通过git部署,你可能没有在你的回购中.您可以web.config使用Kudu Console获取默认值并在其下找到它d:\home\site\wwwroot.默认情况下,根本没有iisnode.yml.

使用iisnode.yml

只需将以下行放入iisnode.yml:

nodeProcessCommandLine: node.exe --nouse-idle-notification --expose-gc --max-old-space-size=1024
Run Code Online (Sandbox Code Playgroud)

或者,如果您使用Node的完整路径,则需要引用它,例如

nodeProcessCommandLine: "D:\Program Files (x86)\nodejs\5.7.1\node.exe" --nouse-idle-notification --expose-gc --max-old-space-size=1024
Run Code Online (Sandbox Code Playgroud)

使用web.config

在文件末尾,您将看到注释掉的<iisnode>标记.用以下内容替换它:

<iisnode nodeProcessCommandLine="node.exe --nouse-idle-notification --expose-gc --max-old-space-size=1024"/>
Run Code Online (Sandbox Code Playgroud)

笔记

  • iisnode.yml 优先于 web.config
  • max-old-space-size当我尝试时,我降低了你的价值,但那是正交的.

然后使用任一文件,您可以在您的仓库中提交它们,这样它就可以用于部署.

  • 确保像我的示例一样,在yml情况下正确获得双引号。如果您引用整个内容,则它不起作用。 (2认同)
  • 添加到“iisnode.yml”将使Azure根本无法启动我的应用程序。添加到“web.config”对我的应用程序没有任何影响。当内存使用率很高时,节点仍然会崩溃。 (2认同)