我习惯于在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。
有人能帮帮我吗?
非常感谢。
发布于 2020-01-19 01:18:14
经过长期的研究和微软工程师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是我的应用程序的动态链接库。
3)将启动命令设置为/home/site/wwwroot/start1.sh (在Azure或Azure DevOps上)。
就这样。
发布于 2019-12-13 02:19:02
尝试在代码中提及路径,这是NodeServices在Startup.cs中的配置方式:
services.AddNodeServices(options =>
{
options.ProjectPath = "Path\That\Doesnt\Exist";
});https://stackoverflow.com/questions/59315050
复制相似问题