【问题标题】:ASP.NET Core NodeServices on Azure Linux WebAppAzure Linux WebApp 上的 ASP.NET Core NodeServices
【发布时间】:2019-12-13 01:43:56
【问题描述】:

我习惯于在 Windows 上发布 Azure WebApp,但现在我正在尝试将 ASP.NET Core 3(带有 NodeServices)部署到 Linux WebApp,我收到以下错误消息:

InvalidOperationException: Failed to start Node process. To resolve this:.

[1] 确保 Node.js 已安装并且可以在 PATH 目录之一中找到。 当前 PATH 环境变量为:/opt/dotnetcore-tools:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/home/site/wwwroot 确保 Node 可执行文件位于其中一个目录中,或者更新您的 PATH。

在 Windows WebApps 上,我有很多其他应用程序,一切都很好。

在 Kudu 上,我输入了 node -v,输出为 v12.13.0

谁能帮帮我?

非常感谢。

【问题讨论】:

  • 您找到解决方案了吗?
  • @Ricardo 你解决了吗?我也面临同样的问题
  • 是的,我做了...但它需要额外的配置...您能等几天吗?我会写一篇文章解释它...
  • 答案是@PhaniKrishnaVemireddy。
  • 你可以查看@GuilhermeMeinlschmiedtAbdo

标签: azure asp.net-core azure-web-app-service nodeservices


【解决方案1】:

经过长时间的研究和微软工程师https://github.com/caroe2014的协助,这是最终答案的三个步骤:

1) Startup.cs

    services.AddNodeServices(options =>
        {
          if (RuntimeInformation.IsOSPlatform(OSPlatform.Linux))
          {
            options.ProjectPath = Path.GetFullPath("/home/site/wwwroot");
          }
        }
      );

2) 我发现容器中不存在 Node,因此在启动应用程序之前必须有一个脚本来安装和启动它。所以我有这个 start1.cs 文件:

#!/bin/bash

apt-get install curl
curl -sL https://deb.nodesource.com/setup_12.x | bash
apt-get install -y nodejs

set -e
export PORT=8080
export ASPNETCORE_URLS=http://*:$PORT
dotnet "Web.Identity.dll"

Web.Identity.dll 是我的应用程序的 dll。

3) 将启动命令设置为 /home/site/wwwroot/start1.sh(在 Azure 门户 - 应用服务配置 - 或 Azure DevOps 上)。

就是这样。

【讨论】:

  • 谢谢你,@Ricardo。其实我试过上面的方法,不过是作为后期部署脚本。我可以从 SSH 控制台安装,但是从部署后脚本运行时,它会引发权限错误。将尝试这种方法。
  • 它对我有用...你可以在这里查看 devops 项目link
【解决方案2】:

尝试在代码中提及路径,这是在 Startup.cs 中配置 NodeServices 的方式:

services.AddNodeServices(options =>
{
    options.ProjectPath = "Path\That\Doesnt\Exist";
});

【讨论】:

  • 我尝试了 options.ProjectPath = "../../opt/nodejs/12.13.0";options.ProjectPath = "opt/nodejs/12.13.0"; 并得到了同样的错误......
  • 我猜你需要传递完整路径,文件所在的路径
  • 我没有得到是否需要将路径传递给 package.json 或 node 文件夹...还没有成功...
猜你喜欢
  • 1970-01-01
  • 2020-12-30
  • 1970-01-01
  • 1970-01-01
  • 2018-06-14
  • 2016-10-01
  • 2019-07-04
  • 1970-01-01
  • 2017-05-26
相关资源
最近更新 更多