【问题标题】:nestjs to azure windows app service - web.config settingsnestjs 到 azure windows 应用服务 - web.config 设置
【发布时间】:2020-04-17 04:29:50
【问题描述】:

从昨天开始,我一直在尝试将我的 nestjs api 部署到 azure,但没有成功。起初我试图将它推送到一个 linux 云服务计划并且能够从 vs 代码部署它,在 azure 日志中看到该应用程序已成功启动,但它不会从我的端点返回任何数据并且经过一些挖掘,我一直看到一些容器故障。我尝试了一段时间的故障排除,然后决定尝试在 Windows 应用程序服务上进行设置。

按照本指南:https://docs.microsoft.com/en-us/azure/app-service/app-service-web-get-started-nodejs,我将我的 nestjs 应用程序推送到 Windows 上的 azure 应用程序服务,但它再次不起作用。我拉下那篇文章中的存储库以将其与我的进行比较,它们在 web.config 中有指向 index.js 的 nodejs 应用程序的入口点。我的nestjs应用程序中不存在那个index.js,我做了一些研究,发现编译完所有内容后nestjs应用程序的入口点是main.js。该示例项目和我的nestjs 应用程序的另一个区别在于nestjs 应用程序的main.js 文件似乎位于dist 文件夹中,而不是位于wwwroot 路径的根目录中。

我的 nestjs 应用程序显然不包含开箱即用的 web.config,因此我使用 hello world 存储库作为示例创建了一个。我将 iisnode 路径更新为 dist/main.js 并将重写路径更新为相同的路径/文件,因为这是我唯一能想到的。

唯一的另一个通配符是我在天蓝色中为 WEBSITE_NODE_DEFAULT_VERSION 应用程序设置更改的节点版本号......我不确定我的 nestjs 应用程序应该是什么。我当前的本地版本是 12.16.2,但是当我将版本更改为 azure 上的版本时,它不起作用。

我不确定这里还有什么可以尝试的——如果我可以解决 docker 容器问题,我会尝试回到 linux,但这似乎是一个死胡同。如果我能让这个 web.config / version 工作正常,我想我可能会有更多的运气继续沿着 Windows 路线前进。

main.js 是否在我应该指向我的 web.config 的 dist 文件夹中? azure 有最大版本限制吗?还有什么我可能遗漏的吗?

编辑:打开流式日志后 - 我现在看到了这个异常

SyntaxError:在严格模式下使用 const。 在 Module._compile (module.js:434:25) 在 Object..js (module.js:464:10) 在 Module.load (module.js:353:31) 在 Function._load (module.js:311:12) 在 Module.require (module.js:359:17) 在需要(module.js:375:17) 在对象。 (D:\Program Files (x86)\iisnode\interceptor.js:459:1) 在 Module._compile (module.js:446:26) 在 Object..js (module.js:464:10) 在 Module.load (module.js:353:31)

经过一番谷歌搜索,我发现旧版本的节点 (

【问题讨论】:

    标签: node.js azure azure-web-app-service nestjs


    【解决方案1】:

    我在朋友的帮助下解决了这个问题。在 azure cli 中运行它可以使用 linux 设置解决问题。

    az webapp config set --resource-group myResourceGroup --name myAppServiceName --startup-file "npm run start:prod"
    

    【讨论】:

    • 和我在评论中所说的一样?。运行该 CLI 命令与将 npm run start 添加到配置刀片的常规设置下的启动命令相同。
    • @RyanHill-MSFT 我在linux和windows下创建了一个app,通过ssh和cmd在portal上执行npm run start,但是不成功,提示nest命令无法执行,如所述在我的回答中。
    • @Blair Holmes 当我在 kudu 控制台中运行“npm run start”时,它会成功启动应用程序。关于如何路由到“main.ts”文件的任何想法,因为这是嵌套应用程序的起点。
    猜你喜欢
    • 1970-01-01
    • 2020-04-04
    • 1970-01-01
    • 2020-10-17
    • 1970-01-01
    • 2017-08-28
    • 1970-01-01
    • 2020-08-31
    • 1970-01-01
    相关资源
    最近更新 更多