2017-11-20 3 views
0

in meinem Knoten js Web-app, ich benutze Knoten version = 6.9.1:Azure App Service: Knoten Version in package.json funktionieren nicht

"engines": { 
    "node": "6.9.1" 
    } 

und wenn ich tun Einsatz mit

git push azure master 

Es zeigt an, dass der richtige Knoten verwendet wird.

... 
remote: Selected node.js version 6.9.1. Use package.json file to choose a different version. 
remote: Selected npm version 3.10.8 
... 

aber mein App-Dienst wurde nicht ordnungsgemäß gestartet, da node.exe abgestürzt ist. später i Ausgang die verwendete Knoten Versionsnummer in meinem Einstiegspunkt Skript, erhalte ich

Node version:v0.6.20 

aus der Datei D: \ LogFiles home \ \ Application \ xxxx-stdout-xxxx.txt

so offensichtlich Zu App Der Dienst verwendet nicht meine definierte Version von node.exe.

später i folgen https://docs.microsoft.com/en-us/azure/nodejs-specify-node-version-azure-apps

unten Text in der Datei D hinzu: \ site home \ \ wwwroot \ iisnode.yml dieses Problem zu beheben.

nodeProcessCommandLine: "D:\Program Files (x86)\nodejs\6.9.1\node.exe" 

so ist meine Frage, warum Azure App Service (iisnode) ist mein definiert Knoten Version in package.json nicht verwenden?

+0

Das ist seltsam. Es sollte in diesem Fall automatisch die iisnode.yml erstellen. Wenn Sie [eine minimale Repro teilen können] (https://github.com/projectkudu/kudu/wiki/Using-a-git-repo-to-report-an-issue), werde ich einen Blick darauf werfen. –

Antwort

0

Um die NodeJs-Version von Azure App Service mithilfe von iisnode.yml (die Knotenversion auf Kudu CLI oder während der Bereitstellung nicht zu ändern) zu ändern, müssen Sie die iisnode.yml-Datei manuell in Ihrem App-Stammordner mit included festlegen unterhalb der Linie, wie Sie erwähnt haben: nodeProcessCommandLine: "D: \ Program Files (x86) \ NodeJS \ 5.9.1 \ node.exe"

Dann brauchen Sie iisnode.yml Datei mit package.json während der Quellcodeverwaltung setzen Einsatz. Der Azure Source Control-Bereitstellungsprozess umfasst die folgenden Schritte: 1. Verschiebt den Inhalt in eine azurblaue Webanwendung 2. Erstellt ein Standardbereitstellungsskript, falls es keinen gibt (deploy.cmd, .deployment-Dateien) im Stammordner der Webanwendung 3. Das Bereitstellungsskript von Run gibt an, wo es die Datei iisnode.yml erstellt, wenn Sie die Version von nodej in der Datei package.json> engine angeben

Referenz: https://blogs.msdn.microsoft.com/azureossds/2016/04/20/nodejs-and-npm-versions-on-azure-app-services/.

Oder Sie können App-Einstellungen im Azure-Portal verwenden, um die Version von NodeJs zu ändern.

Verwandte Themen