首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Azure Linux ASP.NET NodeServices上的WebApp内核

Azure Linux ASP.NET NodeServices上的WebApp内核
EN

Stack Overflow用户
提问于 2019-12-13 01:43:56
回答 2查看 1.3K关注 0票数 2

我习惯于在Windows上发布Azure WebApps,但现在我试图将ASP.NET Core 3(与NodeServices一起)部署到Linux WebApp中,并收到以下错误消息:

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

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

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

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

有人能帮帮我吗?

非常感谢。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2020-01-19 01:18:14

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

1) Startup.cs

代码语言:javascript
复制
    services.AddNodeServices(options =>
        {
          if (RuntimeInformation.IsOSPlatform(OSPlatform.Linux))
          {
            options.ProjectPath = Path.GetFullPath("/home/site/wwwroot");
          }
        }
      );

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

代码语言:javascript
复制
#!/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是我的应用程序的动态链接库。

3)将启动命令设置为/home/site/wwwroot/start1.sh (在Azure或Azure DevOps上)。

就这样。

票数 4
EN

Stack Overflow用户

发布于 2019-12-13 02:19:02

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

代码语言:javascript
复制
services.AddNodeServices(options =>
{
    options.ProjectPath = "Path\That\Doesnt\Exist";
});
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59315050

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档