Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/azure/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Azure Linux WebApp上的ASP.NET核心节点服务_Azure_Asp.net Core_Azure Web App Service_Nodeservices - Fatal编程技术网

Azure Linux WebApp上的ASP.NET核心节点服务

Azure Linux WebApp上的ASP.NET核心节点服务,azure,asp.net-core,azure-web-app-service,nodeservices,Azure,Asp.net Core,Azure Web App Service,Nodeservices,我曾在Windows上发布Azure WebApp,但现在我正尝试将ASP.NET Core 3(带NodeServices)部署到Linux WebApp,并收到以下错误消息: InvalidOperationException:无法启动节点进程。要解决此问题:。 [1] 确保已安装Node.js,并且可以在其中一个路径目录中找到它。 当前路径环境变量为:/opt/dotnetcore tools:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bi

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

InvalidOperationException:无法启动节点进程。要解决此问题:。

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

在Windows WebApps上,我有很多其他应用程序,而且都很好

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

谁能帮帮我吗


非常感谢。

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

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

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

1) Startup.cs

    services.AddNodeServices(options =>
        {
          if (RuntimeInformation.IsOSPlatform(OSPlatform.Linux))
          {
            options.ProjectPath = Path.GetFullPath("/home/site/wwwroot");
          }
        }
      );
2) 我发现节点不在容器中,所以在启动应用程序之前,需要有一个脚本来安装和启动它。所以我有一个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上)


仅此而已。

我尝试了这两种方法。
options.ProjectPath=“../../opt/nodejs/12.13.0”
options.ProjectPath=“opt/nodejs/12.13.0”并且得到了相同的错误…我想如果我需要将路径传递到package.json或节点文件夹,您需要传递完整路径,即我没有获得的文件所在的路径。。。还没有成功……你找到解决办法了吗?@Ricardo你解决了吗?我也面临着同样的问题是的,我有。。。但它需要额外的配置。。。你能等几天吗?我将写一篇文章解释它……它的答案是@PhaniKrishnaVemireddy。你可以检查@guilhermeinlschmiedtabdothank You,@Ricardo。事实上,我尝试了上述方法,但作为部署后脚本。我可以从SSH控制台安装,但当从部署后脚本运行时,会抛出权限错误。我会尝试这种方法。它对我有用。。。你可以在这里看到devops项目