![](/img/trans.png)
[英]How to remotely live debug node.js app, while running on Azure App Service on Linux
[英]How to get Node.js app running on Azure App Service?
我正在嘗試在Azure應用服務(Linux)上運行最簡單的node.js應用,但是我對如何使它運行沒有足夠的想法。 我一直在嘗試不同的方法,但似乎沒有任何效果。
我只是通過FTP部署應用程序,然后將文件放在“ wwwroot”下,但是當請求url時,它將永久加載,然后以服務不可用響應結束。
創建應用程序時,我選擇Linux作為平台,運行時為node.js 8.11,並通過“代碼”而不是docker進行部署。
在日志中,我可以看到:
docker run -d -p 46852:8080 --name [appname] -e WEBSITE_NODE_DEFAULT_VERSION=8.11 -e APPSETTING_WEBSITE_NODE_DEFAULT_VERSION=8.11 -e WEBSITE_SITE_NAME=[appname] -e WEBSITE_AUTH_ENABLED=False -e WEBSITE_ROLE_INSTANCE_ID=0 -e WEBSITE_INSTANCE_ID=[id] -e HTTP_LOGGING_ENABLED=1 appsvc/node:8.11.2_1805212105
Container [appname] for site [appname] did not start within expected time limit. Elapsed time = 230.4882261 sec
這是什么意思,即使我通過“代碼”和FTP通過deploy設置了應用程序,仍以某種方式使用了docker。
的package.json
{
"name": "foo",
"version": "1.0.0",
"description": "x",
"author": "x",
"private": true,
"scripts": {
"start": "node server.js"
},
"dependencies": {
"express": "^4.16.3"
}
}
server.js
const express = require('express')
const app = express()
const port = process.env.PORT || 3000
const host = process.env.HOST || '127.0.0.1'
app.get('/', (req, res) => res.send('Hello!'))
app.listen(port, host)
我還嘗試了ssh進入應用程序並運行npm install
。 我嘗試通過ssh控制台node server.js
運行該應用程序,但最終顯示消息“端口已在使用中”。 我嘗試在Azure Portal的“應用程序設置”中將端口設置為8080。
我在這里想念什么? 如何使應用程序運行?
首先,最好知道您如何精確地創建應用程序(使用的工具,采取的步驟等)。 總體而言,需要了解的主要內容-Azure應用服務默認情況下即使用后即不使用Node.js。 若要指定主機將運行Node應用程序,需要設置“ WEBSITE_NODE_DEFAULT_VERSION”參數(在Azure App Service的“應用程序設置”刀片中)。 完成后,您可以使用任何可用選項進行部署(使用發布功能,本地git,使用Azure DevOps等)。 這是一個很好的話題 。 直截了當:
在我的網站上,我只是執行了app.listen(process.env.port);
-沒有主機參數。 並嘗試執行npm start
。
還要檢查自動生成的web.config
和iisnode.yml
,它們都是運行Node所必需的。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.